.NET 開源免費圖表組件庫,Winform,WPF 通用

大家好, 我是等天黑, 今天給大家介紹一個功能完善, 性能強(qiáng)悍的圖表組件庫 ScottPlot, 當(dāng)我第一次在 github 上看到這個庫, 我看不懂,但我大受震撼, 這么好的項目當(dāng)然要分享出來了。
https://github.com/ScottPlot/ScottPlot
ScottPlot 是一個 .NET 圖表組件, 主要有以下特點:
?適用范圍廣:同時適用于 WinForms, WPF, Avalonia, Console, 支持 .NET Framework 4.6.1 及以上, NET Core 2.0 至 .NET 5。?上手簡單:只需幾行代碼即可創(chuàng)建折線圖、條形圖、餅圖、散點圖等。?性能強(qiáng)悍:千萬級數(shù)據(jù)處理無壓力, 媲美 Python Matplotlib。?可交互:支持用戶和圖表數(shù)據(jù)進(jìn)行交互, 注入靈魂。?開源免費:基于MIT開源協(xié)議, 已經(jīng)開源近5年, 不存在版權(quán)和收費問題?組件豐富:圖表組件非常全面,可滿足各種場景下的展示需求。

圖表接入
? Winform
1.通過Nuget安裝?ScottPlot.WinForms。2.安裝完成后, 就可以在工具箱找到 ScottPlot 組件, 然后拖到 Winform 窗體上。3.填充圖表數(shù)據(jù), 完成!
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();

? WPF
1.通過Nuget安裝?ScottPlot.WPF2.添加一個 WpfPlot 組件到布局中, 并設(shè)置Name
Name="WpfPlot1" />
3.同樣, 填充圖表數(shù)據(jù), 完成!
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();

? Console App
當(dāng)然也可以在控制臺應(yīng)用中使用該圖表組件, 和上面不同的是, 它會渲染成一張圖片, 然后可以保存到本地
1.通過Nuget安裝?ScottPlot2.填充圖表數(shù)據(jù)并保存為圖片

圖表示例




項目背后的故事
wow, 很優(yōu)秀的開源項目, 但其實我還想分享一些項目背后的故事, 因為這非常有意義!
ScottPlot 圖表庫 的作者是 Scott W Harden, 他是一名生物研究科學(xué)家, 目前在神經(jīng)科學(xué)實驗室工作, 他的主要專業(yè)是分子生物學(xué)、牙科和神經(jīng)科學(xué), 但是也對計算機(jī)編程和電氣工程充滿熱情, 所以偶爾會編寫代碼來完成與科學(xué)研究相關(guān)的任務(wù)。

像很多科學(xué)家一樣, Scott 也使用 Python 流行的的 matplotlib 處理數(shù)據(jù), 但是發(fā)現(xiàn)在給一些不太懂計算機(jī)的用戶安裝軟件時, 總會出現(xiàn)一些環(huán)境問題, 配置問題等等, 所以他在2017年做了個決定, 學(xué)習(xí).NET 技術(shù)棧, 主要用來開發(fā)用于科學(xué)研究的桌面應(yīng)用程序。
但是問題來了, 當(dāng)他嘗試用 C# 繪制 WAV 文件中的數(shù)據(jù)時,發(fā)現(xiàn)非常困難, Python 中的微不足道的任務(wù)在 C# 中似乎非常困難, 雖然有免費的圖表庫, 但是當(dāng)加載了千萬級的數(shù)據(jù)時就開始有各種問題了,有一些商業(yè)圖表庫好像可以用,但既復(fù)雜又昂貴, 有些庫僅適用于 Winforms,有些僅適用于 WPF,而且許多庫具有復(fù)雜的數(shù)據(jù)對象模型,對于 .NET 新手來說非常難以理解, 于是作者就自己實現(xiàn)了圖表組件, 這就是 ScottPlot 初版, 然后就開源在了github, 經(jīng)過幾年的逐步更新迭代, ScottPlot 變成了一個功能豐富, 成熟穩(wěn)定的圖表組件庫。
另外, 作者在 2012 年被診斷出患有癌癥(外周 T 細(xì)胞淋巴瘤), 然后在2018年開始接受治療,包括化療、放療和自體骨髓移植, 好消息是, 整個手術(shù)的過程還算順利。

截至到目前, 作者仍然保持著很好的狀態(tài), 感謝作者帶來如此強(qiáng)大的圖表組件, 最后也祝愿作者能夠越來越好, ScottPlot 也能越來越好!
https://github.com/ScottPlot/ScottPlot
https://swharden.com/
