高图显示问题

时间:2019-03-18 10:04:18

标签: highcharts

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

例如,如果给定的数据为[{“ data”:[23.0]},{“ data”:[-0.0]}],则图表如下所示: A version of issue

在[-47,28]处的情节线

当数据为[{“ data”:[10.0]},{“ data”:[-12.0]}]时,存在相同的相关问题: B version of issue

在[-33,14]处的情节线

最后,如果数据为[{“ data”:[22.7]},{“ data”:[-24.3]}],则问题看起来可能如下图所示: C Version of issue

在[-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();

        });

      });

预期视图为:Fine View

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

1 个答案:

答案 0 :(得分: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] }

将负堆栈条的目标正确位置-47设置为-75,即28 + 47的总和即可。