在 WindowsForms 中使用 OxyPplot

本文关键字:OxyPplot WindowsForms | 更新日期: 2023-09-27 17:56:55

到目前为止,从我在OxyPlot文档中看到的内容来看,那里没有多少。 如何获取 x-y 点并使用 OxyPlot 绘制它们?

以下是我尝试采取两点并将它们绘制成图表:

var dataModel = new PlotModel { Title = "data plot" };
foreach (var pt in dataProfile)
{
    XYData.Text = String.Format("X:{0} Y:{1}", pt.X,pt.Y);
    dataModel.Series.Add(pt.X, pt.Y); //(obviously wrong here)
    this.plot1.Model = dataModel;
}

我需要更改/添加什么:dataModel.Series.Add(pt.X, pt.Y);,以便增加积分?此外,如何绘制一段时间内的点?(x-y,随着时间 t 的流逝绘制)

有谁知道一个好的OxyPlot教程站点(用于WinForms),因为我找不到一个(除了OxyPlot文档,它充其量是非常广泛的)。

在 WindowsForms 中使用 OxyPplot

我知道你WinForms提到过,但你必须能够熟悉查看所有示例和所有源代码,无论使用什么 UI 框架。在你最喜欢的搜索引擎中查找 oxyplot,你会在他们的 GitHub 页面上找到很多例子(或者每当看到这个答案时他们会使用的任何 repo 服务)。

无论如何,你想要的是一个ScattierSeries情节。 然后,向其添加点。 举个例子:

    public static PlotModel ExampleScatterSeriesPlot()
    {
        var plotModel1 = new PlotModel();
        plotModel1.Subtitle = "The scatter points are added to the Points collection.";
        plotModel1.Title = "ScatterSeries";
        var linearAxis1 = new LinearAxis();
        linearAxis1.Position = AxisPosition.Bottom;
        plotModel1.Axes.Add(linearAxis1);
        var linearAxis2 = new LinearAxis();
        plotModel1.Axes.Add(linearAxis2);
        var scatterSeries1 = new ScatterSeries();
        scatterSeries1.Points.Add(new ScatterPoint(0.667469348137951, 0.701595088793707));
        scatterSeries1.Points.Add(new ScatterPoint(7.74765135149828, 5.11139268759237));
        scatterSeries1.Points.Add(new ScatterPoint(7.97490558492714, 8.27308291023275));
        scatterSeries1.Points.Add(new ScatterPoint(1.65958795308116, 7.36130623489679));
        scatterSeries1.Points.Add(new ScatterPoint(2.6021636475819, 5.06004851081411));
        scatterSeries1.Points.Add(new ScatterPoint(2.30273722312541, 3.87140443263175));
        scatterSeries1.Points.Add(new ScatterPoint(2.15980615101746, 0.208108848989061));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(0.667469348137951, 0.701595088793707));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(7.74765135149828, 5.11139268759237));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(7.97490558492714, 8.27308291023275));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(1.65958795308116, 7.36130623489679));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(2.6021636475819, 5.06004851081411));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(2.30273722312541, 3.87140443263175));
        scatterSeries1.ActualPoints.Add(new ScatterPoint(2.15980615101746, 0.208108848989061));
        plotModel1.Series.Add(scatterSeries1);
        return plotModel1;
    }

我给你的示例浏览器链接下有很多例子。 上面的代码是从那里截取的。因此,研究所有可用的选项。 OxyPlot非常灵活,在我最近的项目中,我已经能够轻松地扩展它。