Javascript 如何确定图表中每个列系列的宽度-HighCharts
我在x轴中添加了stackLabels,我添加了一个格式化程序函数,该函数将截断x轴标签以适应图表大小:如下所示: 但是,随着系列柱状图的数据和宽度的更改,我还想更改字符串上被截断的字符数。目前我有:Javascript 如何确定图表中每个列系列的宽度-HighCharts,javascript,highcharts,react-highcharts,Javascript,Highcharts,React Highcharts,我在x轴中添加了stackLabels,我添加了一个格式化程序函数,该函数将截断x轴标签以适应图表大小:如下所示: 但是,随着系列柱状图的数据和宽度的更改,我还想更改字符串上被截断的字符数。目前我有: stackLabels: { enabled: true, verticalAlign: 'bottom', //y:160, style: { fontWeight: '
stackLabels: {
enabled: true,
verticalAlign: 'bottom',
//y:160,
style: {
fontWeight: 'bold',
color: 'gray'
},
formatter: function () {
let label = this.stack || '';
let truncatedLabel = label.length <= 3
? label : `${label.substring(0, 3)}...`;
return `<span>${truncatedLabel}</span>`;
},
}
堆叠标签:{
启用:对,
垂直排列:“底部”,
//y:160,
风格:{
fontWeight:'粗体',
颜色:“灰色”
},
格式化程序:函数(){
让label=this.stack | |“”;
让truncatedLabel=label.length尝试使用dataLabels
代替stackLabels
并使用以下配置:
events: {
render() {
const chart = this;
chart.series.forEach(s => {
s.points.forEach(p => {
if (p.dataLabel && p.dataLabel.width > p.pointWidth || p.dataLabel && p.dataLabel.text.styles.textOverflow) {
let dataLabel = p.dataLabel;
dataLabel.css({
width: p.pointWidth,
textOverflow: 'ellipsis'
})
dataLabel.translate(p.barX - 5, chart.plotHeight)
}
})
})
}
}
演示:
API:
API:
API: