Javascript 如何动态设置除0之外的minPointLength
我喜欢为high chart动态设置minPointLengh的值。但是下面提到的代码不起作用。你能帮我把它做完吗Javascript 如何动态设置除0之外的minPointLength,javascript,charts,highcharts,lazy-high-charts,Javascript,Charts,Highcharts,Lazy High Charts,我喜欢为high chart动态设置minPointLengh的值。但是下面提到的代码不起作用。你能帮我把它做完吗 $(function () { $('#container').highcharts({ chart: { type: 'column' }, xAxis: { categories: ['Sep', 'Oct', 'Nov', 'Dec'] },
$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
xAxis: {
categories: ['Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
var minPointLength;
if(this.y > 0)
minPointLength = 3,
else
minPointLength = 0,
series: {
minPointLength: minPointLength,
}
},
series: [{
data: [4, 0, 1, 5]
}]
});
});
不能在对象内部使用代码。
尝试这样做:
var minPointLength;
if(this.y > 0)
minPointLength = 3,
else
minPointLength = 0,
};
series: {
minPointLength : minPointLength
}
这是不可能的。属性
minPointLength
适用于整个系列,不能针对单个点进行更改
如果要正确显示值为正值和0的时间,则显示数据标签可能会有所帮助,以便清楚地标记这些列(请参见以下示例:)
此外,您要在Highcharts代码中动态执行的任何操作都需要在由事件或
格式化程序
函数调用的函数中执行。不能将变量或代码直接插入图表选项。原始代码不起作用的原因之一是您在plotOptions
中的代码。我的建议是:将任何0
值更改为null
值
minPointLength
不会影响任何具有nully
值的点
将代码更新为:
$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
xAxis: {
categories: ['Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
series: {
minPointLength: 3
}
},
series: [{
data: [4, null, 1, 5]
}]
});
});
例如:
代码无法工作的其他原因:您正试图直接在
plotOptions
对象内设置minPointLength
属性-它需要位于一个序列选择器对象内(即“series:{}
”、“column:{}
”等)。现有解决方案的问题:我们在序列数据中添加额外的条形高度,并从工具提示数据中删除(减去)。
工具提示:格式化程序(数据){}
).buildGraph()中设置的数据中{
系列:“”
}
if(数据点
这是一个漫长而复杂的解决方案,但至少目前来说,这是唯一可行的方法。由@jlbiggs共享的解决方案运行良好,但它也会从工具提示中删除数据
我采取了类似的方法,但没有将它们设置为空,我只是将
0
值转换为-1
,并将yAxis
中的min
设置为1
。并且还显示了0
值绘图选项:{var minPointLength;if(this.y>0)minPointLength=3,else minPointLength=0,序列:{//if(this.y>0)minPointLength:minPointLength,//else//minPointLength:0,}},什么不起作用?什么是例外?请详细说明。你能看看问题中更新的代码吗。minPointLength是一个系列级选项,但你试图告诉它看一个点的y值。有很多原因导致它不能像你试图做的那样起作用。这是我找到的最好的实现方法这里需要的是将所有零值更改为空值。minPointLength不会影响空值,但会影响0值。对,我还需要显示工具提示,因此我采用了以下方法: