将 Highcharts 标签定位到右侧
Position Highcharts label to right side
我有一个带有自定义标签的基本图表,例如:
labels: {
items: [{
html: 'Testing Label',
style: {
left: '50px',
top: '50px'
}
}]
}
这可行,但我想从右侧放置标签,我试过这样做:
style: {
right: '50px',
top: '50px'
}
但这行不通...
JsFiddle link:
http://jsfiddle.net/0ze2u47h/3/
chart.labels
似乎不支持 right
属性。对于更复杂的配置,您可以使用 SVGRenderer
:
呈现标签
chart: {
events: {
load: function() {
var chart = this,
renderer = chart.renderer;
var label = this.renderer.label('Test label', null, 100).add();
label.attr({
x: chart.plotWidth + chart.plotLeft - label.width
});
}
}
}
现场演示: http://jsfiddle.net/kkulig/aob1e197/
通过renderer
(而不是通过构造函数选项)呈现标签的优点是您可以访问已创建图表和标签的参数(chart.plotWidth
、chart.plotLeft
、label.width
在这种情况下)。
API参考:https://api.highcharts.com/class-reference/Highcharts.SVGRenderer#label
我有一个带有自定义标签的基本图表,例如:
labels: {
items: [{
html: 'Testing Label',
style: {
left: '50px',
top: '50px'
}
}]
}
这可行,但我想从右侧放置标签,我试过这样做:
style: {
right: '50px',
top: '50px'
}
但这行不通...
JsFiddle link: http://jsfiddle.net/0ze2u47h/3/
chart.labels
似乎不支持 right
属性。对于更复杂的配置,您可以使用 SVGRenderer
:
chart: {
events: {
load: function() {
var chart = this,
renderer = chart.renderer;
var label = this.renderer.label('Test label', null, 100).add();
label.attr({
x: chart.plotWidth + chart.plotLeft - label.width
});
}
}
}
现场演示: http://jsfiddle.net/kkulig/aob1e197/
通过renderer
(而不是通过构造函数选项)呈现标签的优点是您可以访问已创建图表和标签的参数(chart.plotWidth
、chart.plotLeft
、label.width
在这种情况下)。
API参考:https://api.highcharts.com/class-reference/Highcharts.SVGRenderer#label