.NET中的matplotlib平替,ScottPlot简单使用

文章目录

前言

我之前在学OpenCV 三语言开发的时候,遇到了一个问题,怎么可视化的显示数据。Python有matplotlib,那么C# 如何解决呢?顺便说一下,C++我已经放弃了,C++的代码,结果对了就行。

解决方案

Python调用

如果是Python调用,使用PythonNet调用Python的解释器,勉强能实现,但是就是没有代码提示。

PythonNet,Csharp如何白嫖Python生态和使用Matplotlib

.NET 原生解决

这个我还是看知乎上面说的,感觉有道理,我就去试试了。

.NET 中能跑 Python 的 matplotlib 吗?

ScottPlot

找到文章

博客园 C#基于ScottPlot进行可视化

我又网上找了半天,找到了一个博客园的文章,上面写了如何可视化。

ScottPlot Nuget安装

ScottPlot 官网


简单代码测试

Console Application Quickstart

csharp 复制代码
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都变了

csharp 复制代码
        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 5.0 Cookbook 官方案例

ScottPlot只有个类似的热力学图

ScottPlot的特点:大数据统计图

ScottPlot就是专门用于处理大量数据信息的统计图,官方给了一个100万数据的折线图,一点都不卡,就是没有UI动画效果,比较朴素。

总结

我感觉还是用.NET 原生的好,毕竟有代码提示

相关推荐
步步为营DotNet11 小时前
洞悉.NET 11:Blazor 与 Microsoft.Extensions.AI 的融合创新实践
人工智能·microsoft·.net
回忆2012初秋11 小时前
.NET 8.0 实战:基于 MQTTnet 封装高可用的 MQTT 发布/订阅工具类
开发语言·mqtt·.net
回忆2012初秋13 小时前
.NET 8.0 工业物联网实战:基于 S7netplus 封装高可用西门子 PLC 通信类
物联网·.net
学以智用2 天前
.NET Core 仓储模式(Repository Pattern)完整教程
后端·.net
.NET修仙日记2 天前
.NET EFCore批量插入性能优化实战:30秒 → 0.5秒
性能优化·c#·.net·.netcore·微软技术·efcore·踩坑实录
步步为营DotNet2 天前
深挖.NET 11:.NET Aspire 在云原生应用状态管理的创新与实践
云原生·.net·wpf
Cloud_Shy6182 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 上篇)
python·数据分析·excel·pandas·matplotlib
我是唐青枫2 天前
C#.NET YARP 跨域配置详解:网关统一处理 CORS
开发语言·c#·.net
唐青枫2 天前
C#.NET YARP 跨域配置详解:网关统一处理 CORS
c#·.net
键盘上的猫头鹰3 天前
Matplotlib可视化教程:从入门到精通
数据分析·matplotlib