我在这里陷入一个问题。虽然可能很简单,但我很难弄清楚。我想在直流复合图表上显示多条线。我的数据是这样的:
{ Name: Mike, mark1: 26.9, mark2: 62.3 },
{ Name: John, mark1: 23.5, mark2: 60.3 },
{ Name: Firen, mark1: 24.3, mark2: 62.5 }
我需要将名称绘制在X轴上,并将mark1和mark2绘制成相对于Y轴的线。我在这里找到了一个小提琴,它使用线性刻度来达到相同的结果。http://jsfiddle.net/anmolkoul/mzx6mnru/3/
但是它使用线性刻度,因为基本尺寸是数字。我的基本维度是字符串,因此无法使用相同的代码。我认为这是由于我使用的比例尺定义。这是我需要帮助的小提琴:http : //jsfiddle.net/anmolkoul/pjLoh1az/1/
我目前将x轴定义为
.x(d3.scale.ordinal().domain(nameDimension))
.xUnits(dc.units.ordinal)
我认为这就是问题所在。我还有两个补充问题:
dc.js
序列图,这行代码是做什么的?runDimension = ndx.dimension(function(d) {return [+d.Expt, +d.Run]; });
它会影响两个维度吗?还是只是创建两个交叉滤镜尺寸的一种更快的方法。
谢谢您的帮助!
您可以使用以下命令获取序数值:
nameDimension.top(Infinity).map(function(d) {return d.Name}))
返回["Mike", "John", "Firen"]
,然后将其用于序数域。
但这不是必需的,它是自动计算的:
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
对于颜色,可以使用:
dc.lineChart(lineChart1).group(mark1Group,"Mark 1").colors("#FF0000")
这是经过修改的小提琴:http : //jsfiddle.net/1exo25u9/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句