定制的对数d3图表

时间:2012-12-11 00:08:19

标签: javascript d3.js

我正在尝试使用对数刻度(1,10,100 ..)创建d3图表。我使用了他们的功能并打电话但没多大帮助。

var x = d3.scale.log()
    .domain([1,10])
    .range([0, width]);

var y = d3.scale.log()
    .domain([1,10])
    .range([height, 0]);

var color = d3.scale.category10();

var xAxis = d3.svg.axis()
    .scale(x)   
    .orient("bottom");

var yAxis = d3.svg.axis()
    .scale(y)   
    .orient("left");

var line = d3.svg.line()
    .x(function(d) { return x(d[xAxxis]); })
    .y(function(d) { return y(d[yAxxis]); });
var svg = d3.select("#"+this.divid).append("svg")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + margin.top + margin.bottom)
  .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

x.domain(d3.extent(totalArray, function(d) { return d[xAxxis]; })).nice(); 
y.domain(d3.extent(totalArray, function(d) { return d[yAxxis]; })).nice(); 

有什么方法可以用1e + 0,10e + 0,100e + 0而不是1e + 0,2e + 0,3e + 0来创建轴

1 个答案:

答案 0 :(得分:1)

您可以使用tick()tickValues()方法控制轴渲染的标签,具体取决于您想要的方式。请参阅d3's API documentation for more details。另外,请注意日志刻度的tick()方法takes no arguments,因此您可能必须使用tickValues(),但另一种方法可能会对格式化有用。