Javascript 如何组合两种海图类型?
现在,我有一个简单的柱状图,其中包含使用Highcharts的以下代码:Javascript 如何组合两种海图类型?,javascript,charts,highcharts,Javascript,Charts,Highcharts,现在,我有一个简单的柱状图,其中包含使用Highcharts的以下代码: $(document).ready(function() { var options = { chart: { renderTo: 'container', type: 'column' }, title: {
$(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);
});
但这只显示了第一个柱状图 您可能应该尝试使用$.merge来防止对象编辑 试试这个
通过JSON直接传递series选项(图表类型)解决了这个问题。
我将“type:line”添加到数据数组中,然后覆盖脚本标记中以前设置的选项 不幸的是,这不起作用(在控制台日志中没有显示错误)。可能我遗漏了一个关键部分:我有一个名为
options2
的变量,它声明了图表(renderTo和type)和序列。但是您的变量没有合并两个变量options
和options2
,是吗?是的,它没有。对于合并选项,使用:$.extend({},options,options2);那也不行。使用此代码,图表类型会在列与行之间交替更改(刷新页面时)。我想这是这个系列的问题。根据Highcharts文档,必须在series数组中设置第二个(等等)图表类型。
$.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 );
});