凹陷特定轴变量值

时间:2015-01-12 20:01:08

标签: d3.js dimple.js

我的数据嵌套在希望添加值滑块以动态更改年份。一个条目如下:

key: "dot1"
values: Array[3]
 [0]: Object
   x: 3
   y: 2
 [1]: Object
   x: 2
   y: 5
 [2]: Object
   x: 3
   y: 5
key: "dot2"
etc...

有没有办法访问图表的值?类似的东西:

var chart = new dimple.chart(svg, rawData);
chart.setBounds(90, 35, 480, 325)
var myyAxis = chart.addMeasureAxis("y", "values[0][y]");
var myxAxis = chart.addMeasureAxis("x", "values[0][x]");
chart.addSeries(["key"], dimple.plot.bubble);
chart.draw(1000);

1 个答案:

答案 0 :(得分:0)

您无法将计算字符串添加为度量属性,因此我知道实现此目的的最简单方法是格式化数据以展平内部数组,因此不是

key: "dot1"
values: Array[3]
 [0]: Object
   x: 3
   y: 2
 [1]: Object
   x: 2
   y: 5
 [2]: Object
   x: 3
   y: 5

你最终得到了

[
{ 'key' : 'dot1', 'x' : 3, 'y' : 2 },
{ 'key' : 'dot1', 'x' : 2, 'y' : 5 },
{ 'key' : 'dot1', 'x' : 3, 'y' : 5 },
]

我在这里有一个基本的例子:http://jsbin.com/rijuvoneyu/1/edit?js,output

它使用underscore.js来映射数据集中的每一行,将每个值数组映射到内部(因此对于数据集中每1行最终得到3个),然后将整个结构展平。现在您可以使用'x'和'y'作为测量轴的属性。 您会注意到我为每个新数据行添加了唯一标识符。没有它,如果我只做了

var series = chart.addSeries(["key"], dimple.plot.bubble);

dimple正在添加共享相同“key”的所有值,因此只绘制两个气泡。我不确定是否有更好的方法可以在没有唯一ID的情况下发生这种情况,但它运作良好。