highcharts HighChart Point未按照设计进行堆叠

piztneat  于 12个月前  发布在  Highcharts
关注(0)|答案(1)|浏览(185)

我曾试图创建线图没有线在highchart。我正在寻找所需的结果如下图所示。我有两个主要问题。
1.点显示在对方的顶部,按照设计它应该平行。我可以调整,使他们在一条线,但不能容纳超过5-6点。因为数据将是动态的,它可以有其他系列的数据相同的值。
1.第二,蓝色的线上的季节是开箱即用,并触及中期的另一个赛季。如何解决这个问题。
我的代码在这里https://jsfiddle.net/mossawir/chn8u3L5/65/

Highcharts.chart('container', {
                  chart: {

                },
                title: {
                  text: ''
                },
                plotOptions: {
                            line: {
                                marker: {
                                symbol: 'circle',
                              // fillColor: 'blue',
                                radius: 5,
                                    enabled: true
                                },
                                states: {
                                    hover: {
                                        enabled: false
                                    }
                                }
                            }
                        },
                  xAxis: {
                  gridLineWidth: 1,
                    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
                    plotLines: [{
                    label: { 
                        text: 'Winter', // Content of the label. 
                      align: 'left', // Positioning of the label. Default to center.
                      x: +10, // Amount of pixels the labelrepositioned according to the alignment. 
                      y: +20 ,    
                      rotation: 0,
                  },
                  value: -0.5,
                  dashStyle: 'dash',
                  color: 'red',
                  zIndex: 9,
                },{
                label: { 
                      text: 'Spring', // Content of the label. 
                      align: 'left', // Positioning of the label. Default to center.
                      x: +10, // Amount of pixels the labelrepositioned according to the alignment. 
                      y: +20 ,    
                      rotation: 0,
                  },
                  value: 2.5,
                  dashStyle: 'dash',
                  color: 'red',
                  zIndex: 9,
                },{
                    label: { 
                      text: 'Summer', // Content of the label. 
                      align: 'left', // Positioning of the label. Default to center.
                      x: +10, // Amount of pixels the labelrepositioned according to the alignment. 
                      y: +20 ,    
                      rotation: 0,
                  },
                  value: 5.5,
                  dashStyle: 'dash',
                  color: 'red',
                  zIndex: 9,
                },{
                    label: { 
                      text: 'Autom', // Content of the label. 
                      align: 'left', // Positioning of the label. Default to center.
                      x: +10, // Amount of pixels the labelrepositioned according to the alignment. 
                      y: +20 ,    
                      rotation: 0,
                  },
                  value: 8.5,
                  dashStyle: 'dash',
                  color: 'red',
                  zIndex: 9,
                }],
                min: 0
              },

              yAxis: {

              },

              series: [{
                data: [29.9, null, 130.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], 
                lineWidth: 0,
                color: 'green',
              },
              {
                data: [29.9, 12, 137.4, 29.2, 144.0,null, 135.6, 135.6, null, 194.1, 95.6, 54.4], 
                lineWidth: 0,
                color: 'red',
              }, 
              {
                showInLegend: false,
                data: [{
                  x: -1,
                  y: 180,
                }, 180, 180, 180, 180],
                color: 'blue',
                dashStyle: 'solid',
                lineWidth: 1,
                pointPlacement: "on",
                marker: {
                  enabled: false,
                  
                },
                enableMouseTracking: false,
                states: {
                  inactive: {
                    enabled: false
                  }
                }
              }]

            });

字符串
设计截图:x1c 0d1x

xdnvmnnf

xdnvmnnf1#

如果我理解正确的话,您在实现Highcharts时面临两个问题。

点在彼此之上:Highcharts按数据数组中提供的顺序绘制点。如果您有多个具有相同x值的点,(即,它们在x轴上属于同一类别),它们将被绘制在彼此的顶部。为了避免这种情况,您可以对同一类别中的点的x值引入一个小的偏移。但是,这可能不是理想的,如果你有超过5-6点。
线路开箱:线超出框外并接触另一个季节的中间部分的问题是由于您为plotLines设置的值。该值对应于绘制线的x值。如果您希望在两个类别之间的边界处绘制线,则应将该值设置为第二个类别的索引减去0.5。例如,如果你想在'Jan'和'Feb'之间画一条线,那么这个值应该是1 - 0.5 = 0.5。

以下是如何修改plotLines:

plotLines: [{
    label: { 
        text: 'Winter',
        align: 'left',
        x: +10,
        y: +20 ,    
        rotation: 0,
    },
    value: 2.5, // changed from -0.5
    dashStyle: 'dash',
    color: 'red',
    zIndex: 9,
},{
    label: { 
        text: 'Spring',
        align: 'left',
        x: +10,
        y: +20 ,    
        rotation: 0,
    },
    value: 5.5, // changed from 2.5
    dashStyle: 'dash',
    color: 'red',
    zIndex: 9,
},{
    label: { 
        text: 'Summer',
        align: 'left',
        x: +10,
        y: +20 ,    
        rotation: 0,
    },
    value: 8.5, // changed from 5.5
    dashStyle: 'dash',
    color: 'red',
    zIndex: 9,
},{
    label: { 
        text: 'Autom',
        align: 'left',
        x: +10,
        y: +20 ,    
        rotation: 0,
    },
    value: 11.5, // changed from 8.5
    dashStyle: 'dash',
    color: 'red',
    zIndex: 9,
}]

字符串

相关问题