如何在调用 PlotView.Invalidate 时让 OxyPlot 调整缩放?
How can I make OxyPlot adjust zoom when calling PlotView.Invalidate?
我对 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
但什么也没发生。
重置轴并更新每个轴的 Minimum/Maximum。
例如
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);
您当然应该使用数据中的 min/max 值。
Axes 计算 ViewMinimum
和 ViewMaxium
(你正在看的真实的东西)只有在没有指定 Minimum 和 Maximum 的情况下,你可以在重置之前将它们设置为 Double.NaN
,所以ViewMinimum 和 ViewMaximum 将根据 DataMinimum
和 DataMaximum
计算
foreach (var ax in _plotModel.Axes)
ax.Maximum = ax.Minimum = Double.NaN;
PlotView.ResetAllAxes();
此外,如果您更改了数据点,则必须调用 Plot.InvalidatePlot()
,这样 DataMinimum
和 DataMaximum
也会更新。
我对 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
但什么也没发生。
重置轴并更新每个轴的 Minimum/Maximum。
例如
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);
您当然应该使用数据中的 min/max 值。
Axes 计算 ViewMinimum
和 ViewMaxium
(你正在看的真实的东西)只有在没有指定 Minimum 和 Maximum 的情况下,你可以在重置之前将它们设置为 Double.NaN
,所以ViewMinimum 和 ViewMaximum 将根据 DataMinimum
和 DataMaximum
foreach (var ax in _plotModel.Axes)
ax.Maximum = ax.Minimum = Double.NaN;
PlotView.ResetAllAxes();
此外,如果您更改了数据点,则必须调用 Plot.InvalidatePlot()
,这样 DataMinimum
和 DataMaximum
也会更新。