2015-01-12 2 views
0

Мои данные вложены в надежде добавить в слайдер значения динамическое изменение года. Одна запись выглядит так:Dimple Specific Axis Variable Value

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); 

ответ

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); 

ямочка добавлял все значения обмена же «ключ» вместе, так что только построение двух пузырьков. Я не уверен, есть ли лучший способ избежать этого без уникального идентификатора, но он работает достаточно хорошо.

Смежные вопросы