C#中科學(xué)繪圖庫(kù)ScottPlot的使用詳解
安裝和準(zhǔn)備
ScottPlot是基于.Net的一款開(kāi)源免費(fèi)的交互式可視化庫(kù),支持Winform和WPF等UI框架,本文示例在WPF環(huán)境中運(yùn)行。在VS的菜單欄->工具->NuGet包管理器->管理解決方案的NuGet程序包->在瀏覽選項(xiàng)卡的搜索框里輸入ScottPlot,找到ScottPlot.WPF,然后安裝。
為了演示ScottPlot.WPF的基本功能,做如下布局,其中WrapPanel用于防止控制按鈕,名為ScottPlot的集裝箱用于防止ScottPlot的繪圖組件
<TabControl TabStripPlacement="Left"> <TabItem Header="科學(xué)繪圖"> <DockPanel LastChildFill="True"> <WrapPanel DockPanel.Dock="Right"> </WrapPanel> <GroupBox Header="ScottPlot"> </GroupBox> </DockPanel> </TabItem> </TabControl>
其中,TabStripPlacement屬性指定選項(xiàng)卡選項(xiàng)卡條位置為左側(cè)。TabItem是TabControl中的一個(gè)選項(xiàng)卡,Header屬性指定了選項(xiàng)卡標(biāo)題為“科學(xué)繪圖”。DockPanel是一個(gè)布局控件,LastChildFill屬性指定了最后一個(gè)子元素(即GroupBox)填充剩余空間。WrapPanel是另一個(gè)布局控件,DockPanel.Dock屬性指定了它位于DockPanel的右側(cè)。GroupBox是一個(gè)帶有標(biāo)題和邊框的容器控件,Header屬性指定了它的標(biāo)題為“ScottPlot”。
初步使用
為了使用ScottPlot,首先在xaml的Window標(biāo)簽中,添加
xmlns:ScottPlot="clr-namespace:ScottPlot;assembly=ScottPlot.WPF"
在GroupPanel中添加
<ScottPlot:WpfPlot x:Name="plt" />
然后在WrapPanel中添加一個(gè)按鈕,其點(diǎn)擊事件的內(nèi)容為
private void btnSin_Click(object sender, RoutedEventArgs e) { var xs = Enumerable.Range(0, 1000) .Select(x => x / 100.0).ToArray(); var ys = xs.Select(x => Math.Sin(x)).ToArray(); plt.Plot.AddScatter(xs, ys); plt.Refresh(); }
其中,xs是從0到10均等間隔的1000 10001000個(gè)數(shù),y=sinx 。
則點(diǎn)擊按鈕之后,執(zhí)行plt.Plot.AddScatter命令,并調(diào)用Refresh刷新圖形,可以得到
鼠標(biāo)點(diǎn)擊之后可以拖動(dòng),觸摸板雙指放大,雙擊之后會(huì)顯示渲染時(shí)長(zhǎng)。此外,右鍵菜單提供了保存圖像、復(fù)制圖像、縮放到合適尺寸,以及在新窗口打開(kāi)等功能。
簡(jiǎn)單的設(shè)置
新建一組輸入框和按鈕,按鈕的點(diǎn)擊事件如下,當(dāng)點(diǎn)擊按鈕時(shí),可將圖像的標(biāo)題、X與Y軸的內(nèi)容設(shè)置為輸入框中的文本
private void btnSet_Click(object sender, RoutedEventArgs e) { plt.Plot.Title(tbTitle.Text); plt.Plot.XLabel(tbAxisX.Text); plt.Plot.YLabel(tbAxisY.Text); }
效果如下
到此這篇關(guān)于C#中科學(xué)繪圖庫(kù)ScottPlot的使用詳解的文章就介紹到這了,更多相關(guān)C#科學(xué)繪圖庫(kù)ScottPlot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于C#的圖表控件庫(kù) ScottPlot編譯visual studio 2022
- C#程序調(diào)用C++動(dòng)態(tài)庫(kù)(dll文件)遇到的坑及解決
- C#?使用EntityFramework?CodeFirst?創(chuàng)建PostgreSQL數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程
- C#如何將查詢(xún)到的數(shù)據(jù)庫(kù)里面的數(shù)據(jù)輸出到textbox控件
- C#數(shù)據(jù)庫(kù)連接方式(類(lèi)的形式)
- C#連接SQL?Sever數(shù)據(jù)庫(kù)詳細(xì)圖文教程
相關(guān)文章
使用策略模式實(shí)現(xiàn)報(bào)警服務(wù)示例詳解(短信報(bào)警)
服務(wù)的功能:這個(gè)服務(wù)就是能夠?qū)崿F(xiàn)多通路報(bào)警的服務(wù),比如郵件報(bào)警、客戶(hù)端報(bào)警、短信報(bào)警等,該服務(wù)靈活性還不錯(cuò),比較方便擴(kuò)展2014-01-01C#實(shí)例代碼之抽獎(jiǎng)升級(jí)版可以經(jīng)表格數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),抽獎(jiǎng)設(shè)置,補(bǔ)抽
這篇文章主要介紹了C#實(shí)例代碼之抽獎(jiǎng)升級(jí)版可以經(jīng)表格數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),抽獎(jiǎng)設(shè)置,補(bǔ)抽 的相關(guān)資料,需要的朋友可以參考下2016-01-01詳解如何在ASP.NET Core配置請(qǐng)求超時(shí)中間件
本文參考官方文檔,為大家詳細(xì)介紹如何使用Asp.net core 8.0 的最小API 模板項(xiàng)目,配置超時(shí)中間件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-01-01C# 漢字轉(zhuǎn)拼音(全拼和首字母)實(shí)例
這篇文章介紹了C# 漢字轉(zhuǎn)拼音(全拼和首字母)實(shí)例代碼,有需要的朋友可以參考一下2013-10-10C#實(shí)現(xiàn)修改系統(tǒng)時(shí)間的方法
這篇文章主要介紹了C#實(shí)現(xiàn)修改系統(tǒng)時(shí)間的方法,是一個(gè)非常實(shí)用的功能,需要的朋友可以參考下2014-07-07C#實(shí)現(xiàn)圖形位置組合轉(zhuǎn)換的方法
這篇文章主要介紹了C#實(shí)現(xiàn)圖形位置組合轉(zhuǎn)換的方法,涉及C#使用Matrix操作圖形的相關(guān)技巧,需要的朋友可以參考下2015-06-06C#獲取存儲(chǔ)過(guò)程返回值和輸出參數(shù)值的方法
這篇文章主要介紹了C#獲取存儲(chǔ)過(guò)程返回值和輸出參數(shù)值的方法,有需要的朋友可以參考一下2014-01-01