现在我有一个简单的柱形图,下面的代码使用Highcharts:
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'column'
},
title: {
//some code
},
xAxis: {
categories: []
},
yAxis: {
//some code
},
plotOptions: {
series: {
borderWidth: 0,
dataLabels: {
enabled: true,
format: '{point.y}'
}
}
},
legend: {
//some code
},
series: []
};
$.getJSON("data/column.php", function(json) {
options.xAxis.categories = json[0]['data'];
options.series[0] = json[1];
chart = new Highcharts.Chart(options);
});
});
我现在想要使用完全相同的选项(尽管图表类型)将线图添加到同一个容器中。该日期也通过JSON提供。
我怎样才能做到这一点?
到目前为止我做了什么: 我创建了第二个变量" options2"与价值图表和系列。 然后我打电话给
$.getJSON("data/line.php", function(json) {
options.xAxis.categories = json[0]['data'];
options2.series[1] = json[1];
chart = new Highcharts.Chart(options2);
});
但这仅显示第一个柱形图。
答案 0 :(得分:0)
可能你应该尝试使用$ .merge来防止对象编辑。
试试这个
$.getJSON("data/column.php", function(json) {
// Merge objects
var newOptions = $.extend({}, options);
// Edit new object instead of old
newOptions.xAxis.categories = json[0]['data'];
newOptions.series[0] = json[1];
chart = new Highcharts.Chart( newOptions );
});
答案 1 :(得分:0)
通过直接通过JSON传递系列选项(图表类型)解决了这个问题。 我添加了"类型:line"到数据数组,然后覆盖脚本标记中先前设置的选项。