• d3.js学习7


    数值尺度-将数据准确映射为图形

    数值尺度-线性尺度d3.scale.linear()


    <div id="linear" class="clear">
    </div>
    
    <script>
    	var data=[];
    	for(var i=1;i<11;i++){
    		data.push(i);
    	}//生成一个从1到10的数组
    	var linear=d3.scale.linear()
    	.domain([1,10])//定义域
    	.range([1,20]);//值域
    
    function render(data,scale,component){
            var selector=d3.select(component).selectAll("div.cell").data(data);
    	//enter
    	selector.enter()
    	.append("div").classed("cell",true);
    	//exit
    	selector.exit().remove();
    	//update
    	selector.style("display","inline-block")
    	.text(function(d){
    		return d3.round(scale(d),2);//保留小数点后2位
    	});
    }
    render(data,linear,"#linear");
    </script>    
    
    <style type="text/css">
            .cell {
    		min- 40px;
    		min-height: 20px;
    		margin: 5px;
    		float: left;
    		text-align: center;
    		border: #969696 solid thin;
    		padding: 5px;
    }
    	.clear {
    		 clear: both;
    }
    </style>    
    

    数值尺度-幂尺度d3.scale.pow(n)


    var pow=d3.scale.pow().exponent(2);
    

    输出数组1-10的2次方

    使用rangeRound([m,n])来限定值域,并取整。

    对数尺度


    var log=d3.scale.log();
    

    Constructs a new log scale with the default domain [1,10], the default range [0,1], and the base 10.

    根据官网,默认底数为10.

    时间尺度d3.time.scale()


    var startDate=new Date(2014,0,1);//2014n年1月1日
    var endDate=new Date(2014,11,31);//2014年12月31日
    var time=d3.time.scale()
    	.domain([startDate,endDate])
    	.rangeRound([0,1200]);//将一年定位1200个像素,平均每月100个
    var data=[];
    //生成数组data,包含1月到12月
    for(var i=0;i<12;i++){
    	var date=new Date(startDate.getTime());
    	date.setMonth(startDate.getMonth()+i);
    	data.push(date);
    }
    
    function render(data,scale,component){
    	var selector=d3.select(component).selectAll("div.fixed-cell").data(data);
    	//enter
    	selector.enter()
    	.append("div").classed("fixed-cell",true);
    	//exit
    	selector.exit().remove();
    	//update
    	selector.style("margin-left",function(d){
    		return scale(d)+"px";//返回距离,一字排开
    	})
    	.html(function (d){
    		var format=d3.time.format("%x");//详情可见d3.time.format(%n)函数
    		return format(d)+"<br>"+scale(d)+"px";
    	});
    }
    render(data,time,"#linear");
    

    css

    .fixed-cell {
    	min- 40px;
    	min-height: 20px;
    	margin: 5px;
    	position: fixed;
    	text-align: center;
    	border: #969696 solid thin;
    	 padding: 5px;
    }
    

    d3.html(url[, callback]) request an HTML document fragment.

    这是我的个人日记本
  • 相关阅读:
    java-this使用
    java-javaBean
    java 构造器
    refs之新旧差异
    angular学习-01引导加载
    mongo 学习02- 基本指令
    mongo 学习01- mongo安装与配置
    node-学习之路04 流式文件
    Vue nodejs商城项目-搭建express框架环境
    Vue nodejs商城项目-项目概述
  • 原文地址:https://www.cnblogs.com/valentineisme/p/4226269.html
Copyright © 2020-2023  润新知