Highchart:末尾无关的 YAxis 比例
Highchart: Irrelevent YAxis Scale at the end
当最大值超过 80 时,Highchart 在末尾添加不相关的 y 轴刻度。
示例:http://jsfiddle.net/qa1hv5bq/1/
$(function() {
function draw() {
if ($('div[data-sectionId="8766"] .chart .highcharts-container').length > 0) return;
$('div[data-sectionId="8766"] .chart').highcharts({
chart: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt'
},
height: 90,
backgroundColor: 'rgba(255,255,255,0)',
spacing: [0, 5, 5, 0],
type: 'bar',
},
xAxis: [{
categories: ['3%', '96%', '2%'],
labels: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#000000'
}
},
tickLength: 0
}, {
categories: ['Europe ex UK', 'UK', 'Money Market'],
labels: {
align: 'left',
x: 0,
step: 1,
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#000000'
}
},
offset: 250,
tickLength: 0
}],
yAxis: {
gridLineColor: '#7f7f7f',
title: {
text: ''
},
plotLines: [{
value: 0,
color: '#7f7f7f',
width: 1,
zIndex: 10
}],
labels: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#7f7f7f'
},
overflow: 'justify',
format: '{value}%',
y: 8
}
},
plotOptions: {
bar: {
animation: false,
color: '#375789',
dataLabels: {
enabled: false
},
states: {
hover: {
enabled: false
}
}
},
series: {
pointWidth: 20,
stacking: 'normal',
pointPadding: 0.1,
groupPadding: 0
}
},
series: [{
data: [3, 96, 2]
}, {
xAxis: 1,
data: [0, 0, 0]
}],
title: {
text: ''
},
credits: {
enabled: false
},
legend: {
enabled: false
},
tooltip: {
enabled: false
}
});
};
if ($('div[data-sectionId="8766"]').closest('.tab').length == 0) {
draw();
return;
}
var containingTab = $('div[data-sectionId="8766"]').closest('.tab');
var containingTabs = $(containingTab).closest('.tabs');
containingTabs.tabs('onChange', containingTab.index(), function() {
draw();
});
});
在所附示例中,比例 110% 是我们没有预料到的。有没有人知道如何删除它。只有当最大值超过 80% 时才会出现此附加比例。
我们不想设置最大值,原因如下
1. 最大值是动态的,有5-6%的情况,将最大值设置为固定值并不好。
2.我们不希望将最大值设置为与数据最大值相同。
谢谢,
萨拉斯
您可以使用 highcharts()
函数的回调参数来检查 yAxis
的最大生成值是否大于 100。如果是,则将其设置为 100,否则什么都不做:
$('div[data-sectionId="8766"] .chart').highcharts({
/* ... */
}, function (chart) {
if (chart.yAxis[0].getExtremes().max > 100) {
chart.yAxis[0].update({
max: 100
});
}
});
在此处查看有效的 JSFiddle(数据最大值等于 99):http://jsfiddle.net/qa1hv5bq/2/
在 yAxis 上设置一个 maxPadding 为 0。
yAxis:{
maxPadding:0
}
当最大值超过 80 时,Highchart 在末尾添加不相关的 y 轴刻度。
示例:http://jsfiddle.net/qa1hv5bq/1/
$(function() {
function draw() {
if ($('div[data-sectionId="8766"] .chart .highcharts-container').length > 0) return;
$('div[data-sectionId="8766"] .chart').highcharts({
chart: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt'
},
height: 90,
backgroundColor: 'rgba(255,255,255,0)',
spacing: [0, 5, 5, 0],
type: 'bar',
},
xAxis: [{
categories: ['3%', '96%', '2%'],
labels: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#000000'
}
},
tickLength: 0
}, {
categories: ['Europe ex UK', 'UK', 'Money Market'],
labels: {
align: 'left',
x: 0,
step: 1,
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#000000'
}
},
offset: 250,
tickLength: 0
}],
yAxis: {
gridLineColor: '#7f7f7f',
title: {
text: ''
},
plotLines: [{
value: 0,
color: '#7f7f7f',
width: 1,
zIndex: 10
}],
labels: {
style: {
fontFamily: 'AgendaW01-Medium',
fontSize: '8pt',
color: '#7f7f7f'
},
overflow: 'justify',
format: '{value}%',
y: 8
}
},
plotOptions: {
bar: {
animation: false,
color: '#375789',
dataLabels: {
enabled: false
},
states: {
hover: {
enabled: false
}
}
},
series: {
pointWidth: 20,
stacking: 'normal',
pointPadding: 0.1,
groupPadding: 0
}
},
series: [{
data: [3, 96, 2]
}, {
xAxis: 1,
data: [0, 0, 0]
}],
title: {
text: ''
},
credits: {
enabled: false
},
legend: {
enabled: false
},
tooltip: {
enabled: false
}
});
};
if ($('div[data-sectionId="8766"]').closest('.tab').length == 0) {
draw();
return;
}
var containingTab = $('div[data-sectionId="8766"]').closest('.tab');
var containingTabs = $(containingTab).closest('.tabs');
containingTabs.tabs('onChange', containingTab.index(), function() {
draw();
});
});
在所附示例中,比例 110% 是我们没有预料到的。有没有人知道如何删除它。只有当最大值超过 80% 时才会出现此附加比例。
我们不想设置最大值,原因如下 1. 最大值是动态的,有5-6%的情况,将最大值设置为固定值并不好。 2.我们不希望将最大值设置为与数据最大值相同。
谢谢, 萨拉斯
您可以使用 highcharts()
函数的回调参数来检查 yAxis
的最大生成值是否大于 100。如果是,则将其设置为 100,否则什么都不做:
$('div[data-sectionId="8766"] .chart').highcharts({
/* ... */
}, function (chart) {
if (chart.yAxis[0].getExtremes().max > 100) {
chart.yAxis[0].update({
max: 100
});
}
});
在此处查看有效的 JSFiddle(数据最大值等于 99):http://jsfiddle.net/qa1hv5bq/2/
在 yAxis 上设置一个 maxPadding 为 0。
yAxis:{
maxPadding:0
}