我在这里有2个比例的散点图。用户可以通过单轴按钮确定是否需要线性或对数刻度。 y轴的默认比例尺为d3.scaleLog()
.domain([1, 9535511.8])
.range([that.height, 1])
,x轴的默认比例尺为d3.scaleLinear()
.domain([1, 119.05])
.range([1, that.width]);
。这很完美。我得到一个漂亮的图形,每个轴上有7个值,在y上,我的值从1到1000000。
我将以下代码用于y轴:
scale
对于x轴:
x
由于x轴是线性的。
现在,当我将change
的{{1}}更改为单选按钮上的var xLg = d3.scaleLog()
.domain([1, 119.05])
.range([1, that.width]);
var xAxisLog = d3.axisBottom(xLg)
.ticks(5)
.tickFormat(function(d){ return d; });
d3.selectAll("g.axisX").transition().duration(100).call(xAxisLog);
事件时,它的行为很奇怪。它仍然有效,但是我得到了一个丑陋的轴,其数字1到10直到轴的一半,然后是20到100直到结尾。在更改方法上,我正在执行以下操作:
import PyV8
context = PyV8.JSContext()
context.enter()
js = """Write your javascript code here"""
答案 0 :(得分:1)
如Mike Bostock here所述,the的给定数量是d3.ticks
使用的准则,不能保证所生成的ticks数组的长度相同。
尝试设置:.ticks(10)