Highcharts 为什么不';这些矩形不出现吗?
我在一些应该很简单的事情上遇到了很多麻烦。我无法使具有世界坐标(时间在x轴上,价格在y轴上)的矩形显示:Highcharts 为什么不';这些矩形不出现吗?,highcharts,highstock,Highcharts,Highstock,我在一些应该很简单的事情上遇到了很多麻烦。我无法使具有世界坐标(时间在x轴上,价格在y轴上)的矩形显示: chart.renderer.rect(chart.xAxis[0].toPixels(1432810800),chart.yAxis[0].toPixels(1.089965),chart.xAxis[0].toPixels(10800),chart.yAxis[0].toPixels(0.0032400000000001317), 0) .attr({fill: '#FFFF0F',
chart.renderer.rect(chart.xAxis[0].toPixels(1432810800),chart.yAxis[0].toPixels(1.089965),chart.xAxis[0].toPixels(10800),chart.yAxis[0].toPixels(0.0032400000000001317), 0)
.attr({fill: '#FFFF0F', stroke: 'green', 'stroke-width':1, zIndex:4})
.add()
完整的图表是。我发现解决方案是这样计算宽度和高度:
chart.renderer.rect(chart.xAxis[0].toPixels(1431716400000),chart.yAxis[0].toPixels(1.14505),chart.xAxis[0].toPixels(1431896400000)-chart.xAxis[0].toPixels(1431716400000),chart.yAxis[0].toPixels(1.144735)-chart.yAxis[0].toPixels(1.14505), 0)
.attr({fill: '#FF0FFF', stroke: 'red', 'stroke-width':1, zIndex:4})
.add()
也就是说,您必须将两个坐标转换为像素,然后减去以获得宽度或高度。(我不清楚为什么不能先做减法,然后再转换为像素,因为我们讨论的是在两个坐标系中应该相同的相对变化。另一方面,我不再关心。:-你不能,因为
toPixels
返回相对于实际极值的像素位置。例如,yAxis的刻度为100-1000,rect的单位为120-130。当减去值时,它是10个单位。现在,当尝试使用toPixels(10)
时,它将返回实际范围之外的像素位置。