gpt4 book ai didi

javascript - Highcharts 绘图选项系列

转载 作者:行者123 更新时间:2023-11-28 08:58:34 26 4
gpt4 key购买 nike

我目前在我的网站中使用 Highcharts。在我的一个图表(基本柱形图)中,我有多个系列,我可以单击底部显示的名称来显示/隐藏。

我可以有很多系列,但我想同时将系列数量限制为 3 个。这意味着当它加载图表时,它只显示 3 个系列,其他的不显示。如果我点击第 4 个系列,原来存在的 3 个系列之一将会消失,因此事件系列的数量始终保持为 3。

我一直在寻找它,发现我需要在plotOptions.series字段中进行一些修改,并且我深入研究了Highcharts API引用,但没有找到我想要的。我对代码的第一次尝试是这样的:

$('#container').highcharts({
plotOptions:{
series: {
var series = this.series;
var nb_of_visible_series = 0;

//Here i count the number of visible series
for(var i=0; i<series.length; i++) {
if(series[i].visible) {
nb_of_visible_series++:
}
}

//If too many series are visible I'll randomly
//hide as many series as necessary
if(nb_of_visible_series>3) {
var nb_of_series_to_hide = nb_of_visible_series-3;
while(nb_of_series_to_hide>0) {
var i=Math.floor(Math.random()*series.length);
if(series[i].visible) {
series[i].hide()
nb_of_series_to_hide--;
}
}
}
}
}
}

所以这就是想法,但我不知道将其真正放在哪里(不是直接放在 plotOptions.series 字段中,就像我猜的那样?)。我可以将其放入 plotOptions.series.events.legentItemClick 中,但在加载图表时不会考虑它。

我正在寻找一些关于我的代码的跟踪和建议(我是 JS 初学者),提前谢谢您。抱歉我的英语不好。

最佳答案

您编写的代码肯定无法运行。 Highcharts 的选项应该是 javascript 对象,而不是变量、选项等之间混合的东西。

1) 要在 init 上仅显示三个系列的预处理数据,如下所示:

var series = [{ data: [..], name: 'name 1' ..} , { data: [..], name: 'name 2' ..} , ... , {data: [..], name: 'name n'}];

for (var i = 0, len = series.length; i < len; i++) {
series[i].visible = i < 3; //setup variable series.visible to show/hide on init load.
}

$('#container').highcharts({
series: series //pass variable with updated visible option
});

2)正如您所注意到的,您需要为 legendItemClick 编写自己的函数,它将检查有多少系列可见(循环遍历 chart.series 并计数 series.visible == true)。然后使用 series.hide()/series.show() 隐藏/显示特定系列。

关于javascript - Highcharts 绘图选项系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com