Javascript Highcharts:如何使用共享一些配置部分的图表?
我用Highcharts库制作了三个不同的图表。它们共享一些配置代码,我希望尊重DRY原则,并将不同于公共部分的内容分开。 不幸的是,我不知道必要的javascript技巧。 下面是一个代码示例;所有图表中的xAxis配置和其他部分相同,但yAxis不同Javascript Highcharts:如何使用共享一些配置部分的图表?,javascript,highcharts,Javascript,Highcharts,我用Highcharts库制作了三个不同的图表。它们共享一些配置代码,我希望尊重DRY原则,并将不同于公共部分的内容分开。 不幸的是,我不知道必要的javascript技巧。 下面是一个代码示例;所有图表中的xAxis配置和其他部分相同,但yAxis不同 (function($) { // encapsulate jQuery // some stuff here var chart; $(document).ready(function() { chart = new Highchar
(function($) { // encapsulate jQuery
// some stuff here
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'graphContainer',
},
title: {
text: ultimoAggiornamento
},
subtitle: {
text: 'Passo di campionamento di 15 minuti'
},
legend: {enabled: false},
xAxis: {
title: {
text: 'Muovere il cursore sul grafico per visualizzare i valori'
},
offset: 5,
tickInterval: 21600000,
dateTimeLabelFormats: {minute: '%H:%M', day: '%H:%M'},
max: endRange,
type: 'datetime',
plotBands: [{// Light air
from: firstDay,
to: secondDay,
color: 'rgba(255, 216, 216, 0.2)',
label: {
text: firstDayLabel,
style: {
color: 'black',
fontWeight: 'bold'
}
}
}, {// Light breeze
from: secondDay,
to: endRange,
color: 'rgba(222, 222, 255, 0.2)',
label: {
text: secondDayLabel,
style: {
color: 'black',
fontWeight: 'bold'
}
}
}]
},
yAxis: {...},
tooltip: {
borderColor: 'blue',
xDateFormat: '%d/%m/%Y, %H:%M',
style: {
fontSize: '12px',
fontWeight: 'bold'
},
valueDecimals: 1,
shared: true
},
plotOptions: {...},
credits: {
enabled: false
},
//other stuff here
});
});
})(jQuery);
我唯一能想到的是创建一个通用图表,然后使用其方法放入不同的部分,如以下代码段:
chart.yAxis[0].addPlotLine({
value: alarmThreshold,
width: 1,
color: 'red',
});
无论如何,我更喜欢动态图表创建,如下所示:
yAxis: evaluateYaxisForChartType_2(),
但是我错过了必要的javascript知识。可能吗?如何设置?使用
setOptions
函数,并传入您希望为highcharts全局设置的选项的javascript对象。然后,您制作的每个图表都将使用这些选项。就这么简单
例如:
Highcharts.setOptions({
legend: { layout: 'vertical', align: 'right', width: 200 }
});
现在每个图表都将具有这种图例样式