.NET中的matplotlib平替,ScottPlot简单使用
我之前在学OpenCV 三语言开发的时候,遇到了一个问题,怎么可视化的显示数据。Python有matplotlib,那么C# 如何解决呢?顺便说一下,C++我已经放弃了,C++的代码,结果对了就行。我感觉还是用.NET 原生的好,毕竟有代码提示。
文章目录
前言
我之前在学OpenCV 三语言开发的时候,遇到了一个问题,怎么可视化的显示数据。Python有matplotlib,那么C# 如何解决呢?顺便说一下,C++我已经放弃了,C++的代码,结果对了就行。
解决方案
Python调用
如果是Python调用,使用PythonNet调用Python的解释器,勉强能实现,但是就是没有代码提示。
.NET 原生解决
这个我还是看知乎上面说的,感觉有道理,我就去试试了。
ScottPlot
找到文章
我又网上找了半天,找到了一个博客园的文章,上面写了如何可视化。
ScottPlot Nuget安装
简单代码测试
double[] dataX = { 1, 2, 3, 4, 5 };
double[] dataY = { 1, 4, 9, 16, 25 };
ScottPlot.Plot myPlot = new();
myPlot.Add.Scatter(dataX, dataY);
myPlot.SavePng("quickstart.png", 400, 300);
代码跑不了
我进行了对应的修改,发现还是跑不了
我在GitHub上面搜索,搜了半天发现是版本问题
How to launch an interactive plot window from a console application #1465
而Scottplot是有两个版本的。4.0和5.0
5.0新版本测试
既然是5.0的新版本,那我就修改一下代码好了。Api都变了
static void Main(string[] args)
{
double[] dataX = { 1, 2, 3, 4, 5 };
double[] dataY = { 1, 4, 9, 16, 25 };
ScottPlot.Plot myPlot = new();
myPlot.Add.Scatter(dataX, dataY);
ScottPlot.WinForms.FormsPlotViewer.Launch(myPlot, "测试");
Console.WriteLine("Hello, World!");
Console.ReadKey();
}
运行成功!
如果用WPF版本,就会出现问题
因为WPF 限制你必须在STA线程里面处理UI事件。
ScottPlot 无法显示图片
plot其实还有一个功能,就是能显示图片效果。ScottPlot只是单纯的统计图。那看起来就用不了图片显示了。
ScottPlot只有个类似的热力学图
ScottPlot的特点:大数据统计图
ScottPlot就是专门用于处理大量数据信息的统计图,官方给了一个100万数据的折线图,一点都不卡,就是没有UI动画效果,比较朴素。
总结
我感觉还是用.NET 原生的好,毕竟有代码提示
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)