坐标轴

2017-10-24  本文已影响0人  陆lmj
var width = 600;
var height = 600;

var svg = d3.select("body").append("svg")
                .attr("width",width)
                .attr("height",height);

var scale = d3.scale.linear()
                .domain([0,10])
                .range([0,150]);
    
var axisLeft = d3.svg.axis()
                .scale(scale)
                .orient("left")
                .ticks(5);
                
var axisRight = d3.svg.axis()
                .scale(scale)
                .orient("right")
                .tickValues([3,4,5,6,7]);
                
var gAxisLeft = svg.append("g")
            .attr("transform","translate(80,80)")
            .attr("class","axis")
            .call(axisLeft);
            
var gAxisRight = svg.append("g")
            .attr("transform","translate(100,80)")
            .attr("class","axis")
            .call(axisRight);

            
var axisTop = d3.svg.axis()
                .scale(scale)
                .orient("top")
                .ticks(5)
                .tickSize(2,4);
                
var gAxisTop = svg.append("g")
            .attr("transform","translate(80,30)")
            .attr("class","axis")
            .call(axisTop);

scale.range([0,300]);
            
var axisBottom = d3.svg.axis()
                .scale(scale)
                .orient("bottom")
                .ticks(5)
                .tickFormat(d3.format("$0.1f"));
                
var gAxisBottom = svg.append("g")
            .attr("transform","translate(80,300)")
            .attr("class","axis")
            .call(axisBottom);
结果

各比例尺的坐标轴

坐标轴必须设置一个比例尺,根据比例尺的不同可以得到不同的坐标轴。
比例尺中,定义域是坐标轴刻度值得范围,值域是坐标轴实际的像素长度。

var width = 600;
var height = 600;

var svg = d3.select("body").append("svg")
                .attr("width",width)
                .attr("height",height);

var linear = d3.scale.linear().domain([0,1]).range([0,500]);

var pow = d3.scale.pow().exponent(2).domain([0,1]).range([0,500]);

var log = d3.scale.log().domain([0.01, 1]).range([0, 500]);

var axisLinear = d3.svg.axis().scale(linear).orient("bottom");

var axisPow = d3.svg.axis().scale(pow).orient("bottom");

var axisLog = d3.svg.axis().scale(log).orient("bottom");

svg.append("g").attr("transform","translate(30,30)").attr("class","axis").call(axisLinear);

svg.append("g").attr("transform","translate(30,60)").attr("class","axis").call(axisPow);

svg.append("g").attr("transform","translate(30,90)").attr("class","axis").call(axisLog);
不同比例尺的坐标轴
上一篇 下一篇

猜你喜欢

热点阅读