Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highcharts:如何使用共享一些配置部分的图表?_Javascript_Highcharts - Fatal编程技术网

Javascript Highcharts:如何使用共享一些配置部分的图表?

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

我用Highcharts库制作了三个不同的图表。它们共享一些配置代码,我希望尊重DRY原则,并将不同于公共部分的内容分开。 不幸的是,我不知道必要的javascript技巧。 下面是一个代码示例;所有图表中的xAxis配置和其他部分相同,但yAxis不同

(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 }
});
现在每个图表都将具有这种图例样式