Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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 在两列图表中显示图例项_Javascript_Html_Css_Highcharts_Highstock - Fatal编程技术网

Javascript 在两列图表中显示图例项

Javascript 在两列图表中显示图例项,javascript,html,css,highcharts,highstock,Javascript,Html,Css,Highcharts,Highstock,在highcharts中,是否可以将图例显示为两列,垂直堆叠 我正在努力找出显示图例项目的最佳方式,目前我们将图例项目都堆叠在一起 图表上最多有4个系列 我真的不知道如何处理这个问题,我看到了useHTML的选项,但是我似乎找不到任何关于如何处理HTML的示例 任何建议都会非常有用,谢谢。也许你可以使用传说中的“LabelFormat” 然后,您可以创建一个表格,并根据需要排列图例文本 请查看文档页面上的示例。是否尝试使用itemWidth参数 请看 编辑: 函数渲染(){ 如果(本图

在highcharts中,是否可以将图例显示为两列,垂直堆叠

我正在努力找出显示图例项目的最佳方式,目前我们将图例项目都堆叠在一起

图表上最多有4个系列

我真的不知道如何处理这个问题,我看到了useHTML的选项,但是我似乎找不到任何关于如何处理HTML的示例

任何建议都会非常有用,谢谢。

也许你可以使用传说中的“LabelFormat”

然后,您可以创建一个表格,并根据需要排列图例文本


请查看文档页面上的示例。

是否尝试使用itemWidth参数

请看

编辑:

函数渲染(){
如果(本图例){
this.legend.destroy();
}
//两个元素之间的距离
设itemDistance=this.legend.options.itemDistance;
//最大的因素
设maxItemWidth=this.legend.maxItemWidth;
//使图例的宽度为2个最大元素+的大小
//距离
设nextLegendWidth=(maxItemWidth*2)+itemDistance;
//容器宽度
设boxWidth=this.plotBox.width;
//如果两个最大元素的长度+它们之间的距离
//小于容器的宽度,我们排1行,否则
//设置图例宽度2个最大元素+之间的距离
if(箱宽<下一个箱宽){
this.legend.options.width=maxItemWidth;
}否则{
this.legend.options.width=nextLegendWidth;
}
this.render()
}
图表:{
活动:{
加载:渲染,
重画:渲染
}
}

但是,您如何将整个图例放到一个表中?据我所见,这只是包装了单个的图例项目?嗯,当我在我的问题中尝试使用jsbin时,这似乎不起作用,它对你有用吗?太棒了,正是我们需要的!
 legend: {
    width: 200,
    itemWidth: 100
},
width:600,
        itemWidth:300,
        itemStyle: {
          width:280
        }
function renderElements() {
      if (this.legend) {
       this.legend.destroy();
      }
      //distance between 2 elements
      let itemDistance = this.legend.options.itemDistance;
      //the biggest element
      let maxItemWidth = this.legend.maxItemWidth;
      //make the width of the legend in the size of 2 largest elements + 
      //distance  
      let nextLegendWidth = (maxItemWidth * 2) + itemDistance;
      //container width
      let boxWidth = this.plotBox.width;
      //if the length of the 2 largest elements + the distance between them 
      //is less than the width of           container, we make 1 row, else 
      //set legend width 2 max elements + distance between
    if (boxWidth < nextLegendWidth) {
     this.legend.options.width = maxItemWidth;
    } else {
     this.legend.options.width = nextLegendWidth;
  }

  this.render()   
}

chart: {
    events: {
      load: renderElements,
      redraw: renderElements
  }
}