Javascript highcharts雷达图与箱线图

Javascript highcharts雷达图与箱线图,javascript,charts,highcharts,boxplot,Javascript,Charts,Highcharts,Boxplot,我使用highcharts渲染雷达图,我的输入数据有时可能包含多个值,因为在数据数组中可能是这样的 数据=[[0.1,0,4,0.5,0.4],[0.4,0,5],0.3,0.4]。 每当有多个值时,我需要一个箱线图,而不是一个数据,其中包含该数据点的值数组的摘要。 这在海图中可能吗 这是一个jsfiddle Highcharts.chart('container'{ 图表:{ 身高:400, 宽度:600, 是的, 是的, 键入:“行”, }, 标题:{ 文字:“雷达图”, x:-80 },

我使用highcharts渲染雷达图,我的输入数据有时可能包含多个值,因为在数据数组中可能是这样的 数据=[[0.1,0,4,0.5,0.4],[0.4,0,5],0.3,0.4]。 每当有多个值时,我需要一个箱线图,而不是一个数据,其中包含该数据点的值数组的摘要。 这在海图中可能吗

这是一个jsfiddle

Highcharts.chart('container'{
图表:{
身高:400,
宽度:600,
是的,
是的,
键入:“行”,
},
标题:{
文字:“雷达图”,
x:-80
},
窗格:{
尺寸:“80%”
},
xAxis:{
相反:错,
是的,
恩东蒂克:是的,
gridLineColor:“#a2aba0”,
类别:[“销售”、“营销”、“开发”、“客户支持”,
“信息技术”、“管理”、“新”],
勾选位置:“on”,
标签:{
useHTML:true,//设置为true
风格:{
宽度:'150px',
空白:'normal'//设置为normal
},
步骤:1,
},
线宽:0,
对齐:'居中',
x:70,
是的,
风格:{
“空白”:“正常”,
左:“0px”,
顶部:“0px”,
位置:'绝对'
},
},
亚克斯:{
maxPadding:0,
相反:错,
是的,
恩东蒂克:是的,
gridLineColor:“#a2aba0”,
gridLineDashStyle:“破折号”,
gridLineInterpolation:'圆',
线宽:1,
位置:[-1,0,1],
showLastLabel:false,
标签:
{
已启用:false
},
绘图带:[{
颜色:“#ffc0cb”,
起:0,,
致:-1
},{
颜色:“#b8eab8”,
起:0,,
致:1
}],
},
打印选项:{
系列:{
线宽:1,
连接端:正确
},
},
工具提示:{
分享:错,
pointFormat:“{series.name}:{point.y}
” }, 图例:{ 对齐:“右”, 垂直排列:“顶部”, y:70, 布局:“垂直” }, 系列:[{ 名称:'意甲', 数据:[0.1,-0.56,-0.45,-0.7,-0.4,-0.3,0.7], pointPlacement:“打开” }, { 名称:'意甲2', 数据:[0.4,0.4,0.6,-0.3,0.6,0.23,-0.8], pointPlacement:“打开” }] });

当然,这有一个数组数据。

默认情况下,这在Highcharts中是不可能的,您必须在Highcharts core中进行一些更改。但是,通过一种简单的方式,您可以将数据预处理为Highcharts所需的格式,例如:

var H = Highcharts,
  sum,
  data = {
    data1: [
      [-0.1, -0.56, -0.45],
      [-0.7, -0.4], 
      -0.3,
      0.7
    ],
    data2: [
      0.4,
      0.4, 
      [0.6, -0.3],
      0.6,
      0.23, 
      -0.8
    ]
  },
  processedData = {};

H.objectEach(data, function(el, k) {
  processedData[k] = [];
  H.each(el, function(point) {
    if (H.isArray(point)) {
      sum = 0;
      H.each(point, function(p) {
        sum += p;
      });
      processedData[k].push(sum)
    } else {
      processedData[k].push(point)
    }
  });
});

现场演示:

显示您编写的一些相关代码感谢您的回复:),我看到您添加了所有值,使其成为一个单一值(如果是数组),但我希望我的可视化在有一个值数组而不是单一值时有一个方框图。您好,用户3905254,你是说
boxplot
系列类型吗?如果是这样的话,本系列不适用于
polar
图表类型。您好,是的,我指的是箱线图系列类型。无论如何,感谢您的澄清:)我很高兴我能帮助您,如果您以后有任何问题,请提问。您好,ppotaczek,您知道还有其他JavaScript可视化库支持此请求吗?
var H = Highcharts,
  sum,
  data = {
    data1: [
      [-0.1, -0.56, -0.45],
      [-0.7, -0.4], 
      -0.3,
      0.7
    ],
    data2: [
      0.4,
      0.4, 
      [0.6, -0.3],
      0.6,
      0.23, 
      -0.8
    ]
  },
  processedData = {};

H.objectEach(data, function(el, k) {
  processedData[k] = [];
  H.each(el, function(point) {
    if (H.isArray(point)) {
      sum = 0;
      H.each(point, function(p) {
        sum += p;
      });
      processedData[k].push(sum)
    } else {
      processedData[k].push(point)
    }
  });
});