在vb.net中的图表上的对数轴上显示鼠标的位置

时间:2014-07-17 11:57:25

标签: vb.net mschart logarithm

我正在使用MS图表,并且我试图找出如何根据鼠标在图表中的位置显示x轴值。它仅显示鼠标在数据点上的时间。 y轴线性缩放并按预期工作。

然而x轴并不是对数,因为它是对数的并给出了结果:

(0 = 0,10 = 1,100 = 2,1000 = 3)

当x = 10时,它给出一个返回值1,其中x = 100,它给我一个返回值2,等等。

dim position = e.Location
dim result = myChart.hitTest(position.x, position.y)
etoolTip.active = true
if(result.ChartElementType = DataVisualization.Charting.ChartElementType.datapoint)

    dim x = result.ChartArea.AxisX.PixelPositionToValue(position.x)
    dim y = result.chartarea.axisy.pixelPositionToValue(position.y)
    etoolTip.SetToolTip(phaseNoiseChart, "X:"&x  &"Y:"&y)
else
    etoolTip.active = false
End If

如何根据对数轴的鼠标位置获取x轴的真实位置?

2 个答案:

答案 0 :(得分:0)

因为代码属于鼠标移动事件

e.X会给你x坐标 e.Y会给你y坐标

答案 1 :(得分:0)

在我意识到答案告诉我的内容之前,我显然不明白这些数字的含义。我把它变回实际坐标的方式是10 ^ x。

dim x = result.ChartArea.AxisX.PixelPositionToValue(position.x)
x = 10^x
dim y = result.chartarea.axisy.pixelPositionToValue(position.y)
etoolTip.SetToolTip(phaseNoiseChart, "X:"&x  & "Y:"&y)