.NET 開(kāi)源免費(fèi)圖表組件庫(kù),Winform,WPF 通用

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

圖表接入
? Winform
1.通過(guò)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.通過(guò)Nuget安裝?ScottPlot.WPF2.添加一個(gè) 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)然也可以在控制臺(tái)應(yīng)用中使用該圖表組件, 和上面不同的是, 它會(huì)渲染成一張圖片, 然后可以保存到本地
1.通過(guò)Nuget安裝?ScottPlot2.填充圖表數(shù)據(jù)并保存為圖片

圖表示例




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

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

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