2016-03-10 4 views
6

Поскольку я не знаком с библиотекой C3.js, я немного запутался, когда попытался разбить данные массива.Информация о данных диаграммы C3.js

Для мгновенного я имею некоторое значение массива из json.

var jsondata=[[123],[45],[56],[22]]; 

    var jsondataName=[["apple"],["orange"],["banana"],["pear"]]; 

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

Я хочу, чтобы это значение массива становятся независимыми данными и нажать имя в него

Пожалуйста, смотрите демо я сделал: http://jsfiddle.net/q8h39/92/

И результат я хочу должны выглядеть как enter image description here

Update формат данных json:

"Name": apple, 
    "data": { 
     "value": 1434, 
     } 
    "Name": banana, 
    "data": { 
     "value": 342, 
     } 

    } 
} 
+0

проверить эту скрипку я сделал для вас, должно помочь с некоторыми вопросами: HTTP: // jsfiddle.net/4yqwtuwq/ – luke

+0

Я знаю, что вы можете это сделать, когда вы определяете данные, подобные этому, но я должен вызывать данные в соответствии с JSON, там я должен передать значение с помощью массива – anson920520

+0

Получил его. Вам, вероятно, придется перебирать данные, а затем объединять их в массив, который вы создаете, а затем использовать этот массив для данных диаграммы. Имеет ли это смысл? – luke

ответ

1

Вы можете использовать т объект JSON в data.json и затем установить data.keys.value на массив значений в этом формате JSON:

var jsondata = [{ 
    "Name": "apple", 
    "data": { 
    "value": 1434, 
    }, 
}, { 
    "Name": "banana", 
    "data": { 
    "value": 342, 
    } 
}]; 

var chart = c3.generate({ 
    data: { 
    json: jsondata, 
    keys: { 
     value: [ 
     "name", "data.value" 
     ] 
    }, 
    type: "scatter" 
     //hide: true 
    } 
}); 

http://jsfiddle.net/aendrew/mz9ccbrc/

нб, Вам необходимо C3 v0.4.11 для этого (синтаксис точка для keys.value только добавляемые), а ваш объект JSON должен быть массивом (в настоящее время он недопустим).

Если вы хотите, чтобы преобразовать два массива из вашего первоначального вопроса в том формате JSON, попробуйте следующее:

d3.zip(jsondataName, jsondata) 
.map((d) => Object({name: d[0][0], data: { value: d[1][0] } }));