我正在Oxyplot中绘制一些不同的LineSeries(在C#中,使用Windows窗体),它们的范围都有很大不同。为了使每个系列仍然可见,我将所有值缩放到从0到1的范围。当然,这里的问题是,该系列的实际值不再显示了,所以我想知道是否有可能更改显示DataPoint的X和Y值的左键单击事件以解决此问题。如果可能的话,我希望这样,以便用户单击数据点时,显示的Y值将按比例缩放回原始值,而图形仍按比例缩小。
例如,我有一个Na +值,范围从130到150,然后将其缩放到0和1。但是当用户单击一个数据点时,我希望它显示Y = 140而不是0.5。由于每个LineSeries的缩放比例都不同,所以这也意味着我必须分别编辑每个系列的标签。
是的,在当前版本中可能会发生这种情况吗?预先感谢!
编辑:我发现了,请在下面查看答案!
答案 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值。
效果非常好!