我正在尝试创建一个条形图,其中包含D3中xAxis上每个条形的自定义值,并且我认为我会尝试使用tickValues。为了试一试,我给了它一些虚拟数据,但它不能像这样工作:
var xAxis = d3.svg.axis()
.scale(xScale)
.orient("bottom")
.tickValues(['hi','b','c','d','e']);
这是xScale:
gon.votes.length是每个答案总票数的数组,而且功能上只返回特定调查问题的数量(这是一个调查应用程序)
var xScale = d3.scale.linear()
.domain([0,gon.votes.length])
.range([0,w]);
最后,当我打电话
function(d){ return d.title}
这将为每个栏提取适当的标题。
此处还有渲染的xAxis刻度线的html: 为NaN
有关如何将其放在xAxis上的任何提示?试图修改错误的方法吗?
答案 0 :(得分:6)
工作示例: http://tributary.io/inlet/5775047 轴部分的代码中有注释。
问题是范围数组需要具有与域数组中的标签一样多的值。否则它会回收。在你的情况下,第一个标签是0,然后是w,然后是0,然后是w,依此类推。
要从数据数组中动态获取标题,您需要在数组上使用map方法。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
动态标题的工作示例: http://tributary.io/inlet/5775215