几乎是标题。我有一系列序列号,我想把它作为x轴。数组数据本身是通过PHP从数据库中提取的。然后我json_encode它并使其成为一个js数组。我遇到的问题是json:和列都有一个单独的部分:生成C3js图时。
var jsarray = <?php echo json_encode($array) ?>;
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'js_array',
columns: [
['x', js_array]
],
json: {
Data_points,
Data_points2
},
axis: {
y: {
label: { // ADD
text: 'Y axis title',
position: 'outer-middle'
}
}
}
});
我尝试在c3.js文档中查找示例,但它们有单独的JSON数据部分并格式化x轴。我没有看到他们将两者结合在一起的部分。
答案 0 :(得分:2)
如果我理解正确,您希望能够在使用JSON数据时标记X轴数据点,如下例所示:http://c3js.org/samples/data_stringx.html?
假设您的PHP中的数据看起来像这样:
$php_data = array(
'x_labels' => array('MON', 'TUE', 'WED', 'THU', 'FRI'),
'data1' => array(30, 200, 100, 400, 150, 250),
'data2' => array(50, 20, 10, 40, 15, 25)
);
...那么你应该能够使用像这样的JSON数据来实现类似于上面例子的东西:
var json_data = <?php echo json_encode($php_data) ?>;
var chart = c3.generate({
bindto: "#chart",
data: {
x: 'x_labels',
json: json_data
},
axis: {
x: {
type: 'category'
},
y: {
label: 'number'
}
}
});
data: { x: 'x_labels' }
部分告诉库使用数组键下的数据&#34; x_labels&#34;在轴标签处,然后在axis: { x: { type: 'category' } }
下,我们指定我们要使用字符串作为标签类型而不是数字。如果您的轴标签是数字(例如'x_labels' => array(1, 2, 3, 4, 5)
),则不必指定此项。
如果你想玩它,这里是一个小伙伴: https://jsfiddle.net/WingZero/Ldk4shLz/3/