highcharts 未定义series增加series

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了highcharts 未定义series增加series相关的知识,希望对你有一定的参考价值。

使用highcharts,由于series列不确定,需要查询出数据后增加,使用什么方法可以动态的增加series。现在的效果是,点击按钮后生成图像会有4个series,有一个为空。我想在构建表的时候不定义series的个数,之后动态成功。是否可以实现,用什么方法,目前部分代码如下:
$(function()
$(document).ready(function ()
//先把图表的参数定义好。
options =
chart:
renderTo: 'container',
type: 'column',
,
//构建表的其他信息。略

series: [
,
,
,
]
;
);
);
点击按钮后方法
function submitday()
var logdate = $("#Logdate").val();
$.ajax(
url : 'sortServer_getRespByDay.action',
data :
"logdate" : logdate
,

type : 'post',
cache : false,
dataType : 'json',
success : function(data)

options.xAxis.categories = data[0];
options.series[0].name=data[2][0];
options.series[0].data = data[1];
options.series[1].name=data[2][1];
options.series[1].data = data[1];
options.series[2].name=data[2][2];
options.series[2].data = data[1];
chart = new Highcharts.Chart(options);
,
error : function()
alert('操作错误! ');
science = false;
return;

);

series: [
<c:forEach var="x" begin="0" end="9">
,
</c:forEach>
]
这里可以多定义几个,够用就行
在下面方法会删除多余的

for(var i=0;i<data[3];i++)
options.series[i].name = data[1][i];
options.series[i].data = data[2][i];


chart = new Highcharts.Chart(options);
for(var i=0;i<10;i++)
if(chart.series.length>data[3])
var j=chart.series.length;
chart.series[j-1].remove();


看不懂就问
参考技术A series 本质上是一个数组,你自己定义一个数组
myseries=new Array();
然后你获取你的数据后再myseries.push();
然后把myseries赋值给options的series不就得啦
参考技术B 定义一个带参函数
function chartConfig(data)

 //先把图表的参数定义好。
            options = 
                chart: 
                renderTo: 'container',
                type: 'column',
            ,
           series: [ data.options.series[i]
            ,
            ,
            ,
            ]
            ;
        );
);

在highcharter中为hc_add_series_list定义x值

我想为高级图线图定义x值,因为我有分类x值,有时也有引用相同类别的值。无论如何在高图上,有可能在12月15日的这个例子中显示:https://whatukthinks.org/eu/questions/should-the-united-kingdom-remain-a-member-of-the-eu-or-leave-the-eu/?removed。使用函数hc_add_series,我可以定义x值,如下例所示:

library(highcharter)
df = data_frame(x = c(1,1,3,3,5:7),y = c(100,105,110,120,80,90,98),name = 
c("A","A","A","A","B","B","B"))

hc2 <- highchart() %>%
    hc_add_series(df)

hc2

在我的情况下,我不知道在开头会有多少系列,所以我想使用hc_add_series_list,因为我可以预先定义列表。但后来我无法定义x值,因为数据总是被解释为y值。在我阅读https://dantonnoriega.github.io/ultinomics.org/post/2017-04-05-highcharter-explainer.html后,我认为应该可以使用子列表,但直到现在我还没有真正成功。我这样试过:

ds_new <- lapply((1:1), function(x){
  list(name = paste(trips_of_choice[x]),
       data = list(x = c(1:2),
                   y = c(1:2),
                   name =c("5.TA.26-3-j19-1.5.R")
       ))
})

因此,要有一个列表,其中包含名为data的子列表,并包含x和y数据。但它根本不起作用。

我希望有人可以帮助我

答案

假设您的系列存储在列表中:

df1 <- data.frame(x = c(1,2,3,4),
                  y = c(100,105,110,120),
                  name = c("A","A","A","A"))
df2 <- data.frame(x = c(3:6),
                  y = c(80,90,98,105),
                  name = c("B","B","B","B"))
series_list <- list(df1, df2)

您可以使用此解决方案绘制所有系列:

hc2 <- highchart()
for (k in 1:length(series_list)) {
   hc2 <- hc2 %>%
          hc_add_series(series_list[[k]])
}
hc2

enter image description here

以上是关于highcharts 未定义series增加series的主要内容,如果未能解决你的问题,请参考以下文章

highcharts饼图

highcharts 如何给series中的data赋值

在highcharter中为hc_add_series_list定义x值

单引号未在 HighCharts 图表中正确显示

自定义图例 pie highchart 到标签 div

怎么用获取到后台数据在highcharts series data里面进行赋值