Javascript Highcharts-仪表图表数据标签未正确定位

Javascript Highcharts-仪表图表数据标签未正确定位,javascript,html,highcharts,Javascript,Html,Highcharts,我正在构建一个垂直标尺,在应用自定义图像代替默认标记时遇到问题 虽然图像进行渲染,但其位置处于禁用状态。我似乎无法将其精确定位到标记的位置,我也不确定对“y”属性应用静态偏移值是否是正确的方法 这是一个例子 var图表=新的Highcharts.图表({ 图表:{ renderTo:'容器', 键入:“列”, marginBottom:25, 玛金托普:70, marginLeft:65, marginRight:10, }, xAxis:{ 类别:[“一”], 线条颜色:“白色”, 标签:{

我正在构建一个垂直标尺,在应用自定义图像代替默认标记时遇到问题

虽然图像进行渲染,但其位置处于禁用状态。我似乎无法将其精确定位到标记的位置,我也不确定对“y”属性应用静态偏移值是否是正确的方法

这是一个例子

var图表=新的Highcharts.图表({
图表:{
renderTo:'容器',
键入:“列”,
marginBottom:25,
玛金托普:70,
marginLeft:65,
marginRight:10,
},
xAxis:{
类别:[“一”],
线条颜色:“白色”,
标签:{
已启用:false
},
长度:0,
分:0,,
最高:2
},
打印选项:{
专栏:{
堆叠:“正常”,
动画:错,
边框宽度:0,
}
},
亚克斯:{
分:0,,
最高:9026,
时间间隔:9026,
长度:0,
宽度:0,
勾选颜色:'#C0C0',
gridLineColor:“#C0”,
网格线宽:0,
minorTickInterval:25,
minorTickWidth:0,
minorTickLength:0,
minorGridLineWidth:0,
标题:空,
标签:{
格式化程序:函数(){
if(this.isFirst | this.isLast){
返回此.value;
}
},
x:0
},
},
图例:{
已启用:false
},
系列:[
{
数据:[4513],
颜色:{
线性半径:{x1:0,x2:0,y1:0,y2:1},
停止:[
[0,‘红色’],
[1,‘橙色’]
]
}
},
{
数据:[4513],
颜色:{
线性半径:{x1:0,x2:0,y1:0,y2:1},
停止:[
[0,‘橙色’],
[1,‘绿色’]
]
}
},
{
键入:“散布”,
数据:[3120],
标记:{
启用:对,
符号:“圆圈”
},
数据标签:{
是的,
格式化程序:函数(){
返回“”
},
启用:对,
对齐:“右”,
x:-3,
y:2,
溢出:“证明”
}
}
]
});

您应该通过x、y属性调整图像位置

      x: 0,
      y: 30,
例如:

或者更好,直接使用和控制位置

    function renderImage() {
      var chart = this,
        point = chart.get('point'),
        imgWidth = 40,
        imgHeight = 40;

      if (!chart.dataLabelImg) {
        chart.dataLabelImg = this.renderer.image('http://icongal.com/gallery/image/57585/small_arrow_black_monotone_left.png', -1000, -1000, imgWidth, imgHeight).add(point.series.dataLabelsGroup);
      }

      chart.dataLabelImg.attr({
        x: point.graphic.x + (imgWidth - 15) / 2,
        y: point.graphic.y - (imgHeight - 10) / 2
      });

示例:

我认为您必须考虑图像高度,才能将标记准确地放置在点上。您正在渲染的图像是40*40,顶部和底部有一定的间距,因此您的标记提示应该使用一些静态y值进行调整。