我使用Oxyplot绘制我的图,并且我在绘制图时没有任何问题。我的Y轴是'LinearAxis‘,而X轴是'TimeSpanAxis’。
我想做的是从给定的X值中获得Y值。
例如,我想从TimeSpan(0,0,0,1).
获取Y值
我不能使用鼠标位置或任何其他事件。X值将由用户作为时间跨度给出。
这应该很容易,但我找不到任何东西。
发布于 2019-01-08 01:37:47
我不确定这是不是最有效的方法,但这里有一个关于如何从X中找到Y值的建议。请注意,这不是100%测试过的代码,但你会从中得到想法的要点。
其思想是基于要搜索的点之前和之后的“定义的点”来计算坡度。然后,您可以使用斜率来查找丢失的相关点坐标。
Slope = (y2-y2)/(x2-x1)
假设您有一个轴作为LinearAxis,另一个轴作为TimeSpanAxis,并且给出了需要找到Y的TimeSpanAxis。
var timeSpanToSearch = new TimeSpan(8, 30, 0);
var timeSpanToSearchAsDouble = TimeSpanAxis.ToDouble(timeSpanToSearch);
var series = MyModel.Series.First() as LineSeries;
double result = 0;
// If the point is a defined point, you can find Y easily
if (series.Points.Any(x => x.X.Equals(timeSpanToSearchAsDouble)))
{
result = series.Points.First(x => x.X.Equals(timeSpanToSearchAsDouble)).Y;
}
else
{
var floorValue = series.Points.Where(x => x.X < timeSpanToSearchAsDouble).Last();
var ceilingValue = series.Points.Where(x => x.X > timeSpanToSearchAsDouble).First();
var slope = (ceilingValue.Y - floorValue.Y) / (ceilingValue.X - floorValue.X);
result = slope * (timeSpanToSearchAsDouble - floorValue.X) + floorValue.Y;
}
https://stackoverflow.com/questions/54063884
复制相似问题