Highcharts显示问题

问题描述 投票:0回答:1

面临的问题是具有负堆栈的条形图中的plotLines基于系列的数据消失。

例如,如果给出的数据是[{“data”:[23.0]},{“data”:[ - 0.0]}],则图表如下所示:

PlotLines在[-47,28]

当数据为[{“data”:[10.0]},{“data”:[ - 12.0]}时,相同的相关问题:

PlotLines在[-33,14]

最后,如果数据是[{“data”:[22.7]},{“data”:[ - 24.3]}],问题可能如下图所示:

PlotLines在[-36,8]

不同图表的示例代码:

$.getJSON('targets.json', function(jsonplotdata) {
      $.getJSON('chart.json', function(datajsp) {
        var chart = new Highcharts.chart({
          chart: {
            renderTo: 'chart',
            plotBackgroundColor: null,
            plotBorderWidth: 0,
            plotShadow: false,
            type: 'bar',
          },
          credits: {
            enabled: false
          },
          lang: {
            noData: "No Data Available!"
          },
          title: {
            text: ''
          },
          xAxis: {
            labels: {
              enabled: false
            },
            lineWidth: 0,
            minorTickLength: 0,
            tickLength: 0,
            gridLineWidth: 0,
            minorGridLineWidth: 0,
            categories: ['']
          },
          yAxis: {
            labels: {
              enabled: false,
            },
            plotLines: [{
              color: 'black',
              dashStyle: 'Solid',
              zIndex: 5,
              width: 1,
              label: {
                text: 'Target<br/>47 kg/t',
                style: {
                  fontSize: "10px",
                  fontFamily: 'sans-serif'
                },
                rotation: 0,
                align: 'center',
                x: 25,
              }
            }, {
              color: 'black',
              dashStyle: 'Solid',
              zIndex: 5,
              width: 1,
              label: {
                text: 'Target<br/>28 kg/t',
                style: {
                  fontSize: "10px",
                  fontFamily: 'sans-serif'
                },
                rotation: 0,
                align: 'center',
                x: -25,
              }
            }],
            gridLineWidth: 0,
            minorGridLineWidth: 0,
            title: {
              text: ''
            }
          },
          colors: ['#4572A7', '#AA4643'],
          legend: {
            enabled: false,
          },
          tooltip: {
            enabled: false,
          },
          plotOptions: {
            series: {

              stacking: 'normal',
              pointWidth: 60
            }
          },
          series: [{
            name: 'chart',
            data: [],
            dataLabels: {
              enabled: true,
              x: 16,
              format: '{series.name}<br/>{point.y} kg/t',
              style: {
                align: 'center',
                fontSize: "10px",
                fontWeight: 'normal',
                textOutline: false,
                fontFamily: 'sans-serif',
                'text-anchor': 'middle'
              }
            }
          }, {
            name: 'Lime + Dolo',
            data: [],
            dataLabels: {
              enabled: true,
              x: 25,
              formatter: function() {
                return this.series.name + '<br/>' + Math.abs(this.y) + ' kg/t';
              },
              style: {
                color: 'white',
                align: 'center',
                fontSize: "10px",
                fontWeight: 'normal',
                textOutline: false,
                fontFamily: 'sans-serif',
                'text-anchor': 'middle'
              }
            }
          }],
        });

        datajsp.forEach(function(datajsp, i) {
          chart.series[i].setData(datajsp.data);

          chart.yAxis[0].options.plotLines[0].value = jsonplotdata[0];
          chart.yAxis[0].options.plotLines[1].value = jsonplotdata[1];
          chart.yAxis[0].update();

        });

      });

预期的观点如下:

我正在寻找克服这个问题的最佳方法。

highcharts
1个回答
0
投票

@WojciechChmiel的最后一个建议完美无缺!但是,似乎最简单的方法是在此链接中添加散点系列:https://www.highcharts.com/forum/viewtopic.php?t=34848

以下系列补充: { name:"Target 47", type:'scatter', marker:{ enabled:false }, data:[-75] },{ name:"Target 28", type:'scatter', marker:{ enabled:false }, data:[28] }

通过将其设置为-75(28 + 47的总和)来实现负堆栈栏的目标的正确位置-47。

© www.soinside.com 2019 - 2024. All rights reserved.