面临的问题是,基于系列数据,条形图中带有负堆栈的plotLines消失了。
例如,如果给定的数据为[{“ data”:[23.0]},{“ data”:[-0.0]}],则图表如下所示:
在[-47,28]处的情节线
当数据为[{“ data”:[10.0]},{“ data”:[-12.0]}]时,存在相同的相关问题:
在[-33,14]处的情节线
最后,如果数据为[{“ data”:[22.7]},{“ data”:[-24.3]}],则问题看起来可能如下图所示:
在[-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();
});
});
预期视图为:
我正在寻找克服此问题的最佳方法。
答案 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的总和即可。