如果两个刻度具有相同的值,则d3轴不显示刻度标签

时间:2012-11-28 11:09:22

标签: javascript charts d3.js

我已经从示例中修改了数据结构 d3.js yaxis not drawing all the ticks properly进入

       [{name: "john",value: 4500},
        {name: "peter",value: 3000},
        {name: "tom",value: 2500},
        {name: "john",value:2000}];

绘制图表时,第4个名称即第2个约翰没有出现在图表中, 为什么这种行为以及如何让它出现在图表中

这里是它的笨蛋http://jsfiddle.net/hyder/pFEEW/

1 个答案:

答案 0 :(得分:2)

如果仔细观察,您会看到第一个和第四个项目的条形图绘制在相同的位置并重叠。

基本问题是代码使用数据本身(重复)来识别单个元素。如果您希望具有相同数据值的不同元素,则需要为它们提供唯一标识符,以便代码能够区分它们。代码中的比例被设置为使得相同的输入值将映射到相同的输出值,即如果您具有相同的名称,则条形将被绘制在相同的位置。

解决此问题的一种方法是使用唯一ID作为缩放函数的输入,然后使用格式化程序从此ID中生成标签。