Oxyplot-编辑LineSeries中的左键标签

时间:2018-11-20 14:12:16

标签: c# winforms oxyplot tracker

我正在Oxyplot中绘制一些不同的LineSeries(在C#中,使用Windows窗体),它们的范围都有很大不同。为了使每个系列仍然可见,我将所有值缩放到从0到1的范围。当然,这里的问题是,该系列的实际值不再显示了,所以我想知道是否有可能更改显示DataPoint的X和Y值的左键单击事件以解决此问题。如果可能的话,我希望这样,以便用户单击数据点时,显示的Y值将按比例缩放回原始值,而图形仍按比例缩小。

例如,我有一个Na +值,范围从130到150,然后将其缩放到0和1。但是当用户单击一个数据点时,我希望它显示Y = 140而不是0.5。由于每个LineSeries的缩放比例都不同,所以这也意味着我必须分别编辑每个系列的标签。

是的,在当前版本中可能会发生这种情况吗?预先感谢!

编辑:我发现了,请在下面查看答案!

2 个答案:

答案 0 :(得分:0)

您不能直接更改显示的数据,但是可以像这样在oxyplot中监听mousedown事件:

var model= new PlotModel();
model.MouseDown += Model_MouseDown;

private void Model_MouseDown(object sender, OxyMouseDownEventArgs e)
{
    var controller = sender as PlotController;
    var position = e.HitTestResult;
}

使用position的值,您可以计算回实际值并将其显示在其他位置。

答案 1 :(得分:0)

我不确定是否应该回答自己的问题,但最终还是弄清楚了。因此,无论如何,事实证明我无法访问所需的任何属性,因此我只是为数据点创建了自己的类,并为缩放值添加了一个属性。事实证明,跟踪器能够显示数据点的其他属性,但是标准数据点仅具有X和Y。然后,我修改了TrackerFormatString以显示缩放值,而不是实际值。

back

那是我创建的类,这就是我最终处理积分的方式。

$HOME/.mavenrc

比例尺是在绘制之前我将这些值除以的因子,TrackerFormatString是系列名称的{0},而{2}是X值。

效果非常好!