.NET 开源免费图表组件库,Winform,WPF 通用

大家好, 我是等天黑, 今天给大家介绍一个功能完善, 性能强悍的图表组件库 ScottPlot, 当我第一次在 github 上看到这个库, 我看不懂,但我大受震撼, 这么好的项目当然要分享出来了。

https://github.com/ScottPlot/ScottPlot

ScottPlot 是一个 .NET 图表组件, 主要有以下特点:

•适用范围广:同时适用于 WinForms, WPF, Avalonia, Console, 支持 .NET Framework 4.6.1 及以上, NET Core 2.0 至 .NET 5。•上手简单:只需几行代码即可创建折线图、条形图、饼图、散点图等。•性能强悍:千万级数据处理无压力, 媲美 Python Matplotlib。•可交互:支持用户和图表数据进行交互, 注入灵魂。•开源免费:基于MIT开源协议, 已经开源近5年, 不存在版权和收费问题•组件丰富:图表组件非常全面,可满足各种场景下的展示需求。

3036968c604a7683ea2523a717d30e24.gif

图表接入

⚡ Winform

1.通过Nuget安装 ScottPlot.WinForms。2.安装完成后, 就可以在工具箱找到 ScottPlot 组件, 然后拖到 Winform 窗体上。3.填充图表数据, 完成!

double[] dataX = new double[] {1, 2, 3, 4, 5};double[] dataY = new double[] {1, 4, 9, 16, 25};formsPlot1.Plot.AddScatter(dataX, dataY);formsPlot1.Refresh();
7de386cc49f66d99976cd1545b0623a5.png

⚡ WPF

1.通过Nuget安装 ScottPlot.WPF2.添加一个 WpfPlot 组件到布局中, 并设置Name

<WpfPlot Name="WpfPlot1" />


3.同样, 填充图表数据, 完成!

double[] dataX = new double[] { 1, 2, 3, 4, 5 };double[] dataY = new double[] { 1, 4, 9, 16, 25 };WpfPlot1.Plot.AddScatter(dataX, dataY);WpfPlot1.Refresh();
357fc1668d546457f6d03538e2d79a17.png

⚡ Console App

当然也可以在控制台应用中使用该图表组件, 和上面不同的是, 它会渲染成一张图片, 然后可以保存到本地

1.通过Nuget安装 ScottPlot2.填充图表数据并保存为图片

470514d50104ef472e7ef82ce2686651.png

图表示例

70394dff1a5c3bbac38925c67c481775.png 380324debf244ea7ae35cff90eb2f0da.png 02ae16d55c96a99e5335d2bab2e94ae4.png 2263db1bdb559cc5c877bc43d3412aaa.gif

项目背后的故事

wow, 很优秀的开源项目, 但其实我还想分享一些项目背后的故事, 因为这非常有意义!

ScottPlot 图表库 的作者是 Scott W Harden, 他是一名生物研究科学家, 目前在神经科学实验室工作, 他的主要专业是分子生物学、牙科和神经科学, 但是也对计算机编程和电气工程充满热情, 所以偶尔会编写代码来完成与科学研究相关的任务。

e0056a030efe131826fcef9a3e90f291.png

像很多科学家一样, Scott 也使用 Python 流行的的 matplotlib 处理数据, 但是发现在给一些不太懂计算机的用户安装软件时, 总会出现一些环境问题, 配置问题等等, 所以他在2017年做了个决定, 学习.NET 技术栈, 主要用来开发用于科学研究的桌面应用程序。

但是问题来了, 当他尝试用 C# 绘制 WAV 文件中的数据时,发现非常困难, Python 中的微不足道的任务在 C# 中似乎非常困难, 虽然有免费的图表库, 但是当加载了千万级的数据时就开始有各种问题了,有一些商业图表库好像可以用,但既复杂又昂贵, 有些库仅适用于 Winforms,有些仅适用于 WPF,而且许多库具有复杂的数据对象模型,对于 .NET 新手来说非常难以理解, 于是作者就自己实现了图表组件, 这就是 ScottPlot 初版, 然后就开源在了github, 经过几年的逐步更新迭代, ScottPlot 变成了一个功能丰富, 成熟稳定的图表组件库。

另外, 作者在 2012 年被诊断出患有癌症(外周 T 细胞淋巴瘤), 然后在2018年开始接受治疗,包括化疗、放疗和自体骨髓移植, 好消息是, 整个手术的过程还算顺利。

2bc7ec63af1c86ed53b2fb3155d0a399.png

截至到目前, 作者仍然保持着很好的状态, 感谢作者带来如此强大的图表组件, 最后也祝愿作者能够越来越好, ScottPlot 也能越来越好!

https://github.com/ScottPlot/ScottPlot

https://swharden.com/

技术群: 需要进技术群学习交流的请添加小编微信,切记备注:加群,对以上内容有什么疑问也可以直接和小编直接沟通交流!     

小编微信:mm1552923   

公众号:dotNet编程大全   

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
".NET Core", ".NET Framework", WPF (Windows Presentation Foundation), 和 WinForms (Windows Forms) 都是与 .NET 相关的技术,但它们有一些区别。 1. .NET Framework: - .NET Framework 是最早发布的 .NET 平台,它是用于构建 Windows 应用程序的一种技术框架。 - 它提供了广泛的类和功能,用于开发各种类型的应用程序,包括桌面应用程序、Web 应用程序和服务应用程序等。 - .NET Framework 只能在 Windows 操作系统上运行,因此它对于跨平台开发是不够灵活的。 2. .NET Core: - .NET Core 是微软在 .NET 平台的下一代开发平台,它是一个跨平台的开源框架。 - .NET Core 支持在 Windows、macOS 和 Linux 等多个操作系统上运行,因此可以实现跨平台开发。 - 它具有较小的安装包大小、更快的性能和更好的可扩展性。 - .NET Core 提供了 ASP.NET Core(用于构建 Web 应用程序)和 EF Core(用于数据访问)等组件。 3. WPF (Windows Presentation Foundation): - WPF 是一种用于构建 Windows 桌面应用程序的用户界面技术。 - 它提供了丰富的界面设计功能,支持XAML(可扩展应用程序标记语言)来定义应用程序的用户界面。 - WPF 可以与 .NET Framework 或 .NET Core 一起使用。 4. WinForms (Windows Forms): - WinForms 是一种用于构建 Windows 桌面应用程序的用户界面技术。 - 它使用基于事件的编程模型,通过在窗体上添加控件来构建应用程序的用户界面。 - WinForms 只能与 .NET Framework 一起使用。 总结: .NET Core 是一个跨平台的开源框架,可以用于构建各种类型的应用程序,包括 Web 应用程序和桌面应用程序。.NET Framework 是一个仅限于 Windows 平台的框架,具有更广泛的类和功能。WPFWinForms 则是两种用于构建 Windows 桌面应用程序的用户界面技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值