我正在尝试使用对数刻度(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来创建轴
答案 0 :(得分:1)
您可以使用tick()
或tickValues()
方法控制轴渲染的标签,具体取决于您想要的方式。请参阅d3's API documentation for more details。另外,请注意日志刻度的tick()
方法takes no arguments,因此您可能必须使用tickValues()
,但另一种方法可能会对格式化有用。