我的OxyPlot有问题,如下:
我创建了一个新的PlotView,并在我的程序启动时附加了一些带有某些轴的PlotModel。
在我的程序中,用户可以打开一个文件,该文件在PlotView控件中进行解释和绘制。
要显示新系列,我
myPlotView.Invalidate(true);
这将在图中显示数据,但OxyPlot不会执行任何缩放。如何自动平移和缩放,以便绘图覆盖整个PlotView?
我试图设置
myPlotView.Model.Axes[0].DataMinimum = someValue1
myPlotView.Model.Axes[1].DataMinimum = someValue2
myPlotView.Model.Axes[0].DataMaximum = someValue3
myPlotView.Model.Axes[1].DataMaximum = someValue4
但没有任何反应。
答案 0 :(得分:6)
只有在未指定“最小值”和“最大值”时,轴才会计算ViewMinimum
和ViewMaxium
(您正在观看的实际值),您可以在重置之前将它们设置为Double.NaN
,因此ViewMinimum和ViewMaximum将根据DataMinimum
和DataMaximum
foreach (var ax in _plotModel.Axes)
ax.Maximum = ax.Minimum = Double.NaN;
PlotView.ResetAllAxes();
此外,如果您更改了数据点,则必须致电Plot.InvalidatePlot()
,以便DataMinimum
和DataMaximum
也得到更新。
答案 1 :(得分:0)
重置轴并更新每个轴的最小值/最大值。
e.g。
PlotView.ActualModel.Axes[0].Reset();
PlotView.ActualModel.Axes[1].Reset();
PlotView.ActualModel.Axes[0].Minimum = 50;
PlotView.ActualModel.Axes[0].Maximum = 250;
PlotView.ActualModel.Axes[1].Minimum = 50;
PlotView.ActualModel.Axes[1].Maximum = 250;
PlotView.InvalidatePlot(true);
您当然应该使用数据中的最小值/最大值。