OxyPlot.Wpf 图表控件使用备忘
OxyPlot.Wpf 圖表控件使用備忘
目錄
OxyPlot.Wpf 圖表控件使用備忘
一、OxyPlot.Wpf 控件信息
二、基本概念
(一) PlotView 和 Plot
(二) PlotModel
(三) Axes
(四) Series
(五) Tracker
三、樣式設(shè)置
(一) 效果對(duì)比
(二) 圖表邊框和數(shù)據(jù)線條樣式
(三) 坐標(biāo)軸樣式
(四) 自定義 Tracker
四、裝配和數(shù)據(jù)填充
五、示例代碼
獨(dú)立觀察員 2021 年 5 月 21 日
一、OxyPlot.Wpf?控件信息
GitHub:https://github.com/oxyplot/oxyplot
官方文檔地址:https://oxyplot.readthedocs.io/en/latest/index.html
使用版本:NuGet 版 2.0.0
參考文章:《OxyPlot 在 wpf 中繪制實(shí)時(shí)動(dòng)態(tài)曲線【更新 2.0 去掉 Smooth 屬性】》
?
二、基本概念
(一) PlotView 和 Plot
界面上有兩種使用方法:
(1)使用 PlotView(界面簡(jiǎn)單,設(shè)置都在代碼中)
?
(2)使用 Plot (坐標(biāo)軸、線條等都在界面上設(shè)置)
?
我們使用第一種方法。
?
(二) PlotModel
PlotView 的 Model 屬性需綁定一個(gè) PlotModel 對(duì)象,它包含了整個(gè)圖表的各種信息,比如邊框、數(shù)據(jù)線條、坐標(biāo)軸、圖示 等。
?
綁定的屬性可按如下定義:
?
(三) Axes
Axes 就是坐標(biāo)軸集合,可分別添加四個(gè)方向的坐標(biāo)軸,如果沒有自行添加,默認(rèn)會(huì)有一個(gè)底部的橫坐標(biāo)和一個(gè)左側(cè)的縱坐標(biāo)。
坐標(biāo)軸也有好幾種類型:
?
本文使用的是 LinearAxis:
?
(四) Series
Series 代表了一組數(shù)據(jù),有很多種類型:
?
本文以 線條(LineSeries)為例:
?
注釋部分是指定平滑模式,開啟平滑模式后,兩點(diǎn)之間以曲線相連,性能會(huì)降低;
關(guān)閉平滑模式,兩點(diǎn)之間以直線相連,也就是形成折線圖。
?
(五) Tracker
Tracker 指的是可浮現(xiàn)的線條上點(diǎn)的信息框,可以理解為 ToolTip 。Tracker 是屬于 Series 的。
默認(rèn)是按住鼠標(biāo)左鍵,然后移動(dòng)到點(diǎn)上,顯示 Tracker 。
可使用如下代碼改為鼠標(biāo)移上就顯示(其中 _PlotView 為 PlotView 控件對(duì)象):
?
三、樣式設(shè)置
(一) 效果對(duì)比
默認(rèn)樣式如下(不包括標(biāo)題和坐標(biāo)軸標(biāo)題):
?
Tracker 默認(rèn)樣式如下:
?
可通過設(shè)置,改為如下樣式:
?
(二)?圖表邊框和數(shù)據(jù)線條樣式
?
圖表邊框四邊的寬度可分別設(shè)置,某一邊的邊框設(shè)為 0 時(shí),相應(yīng)的坐標(biāo)軸線樣式才有效果。不過坐標(biāo)軸線條好像有點(diǎn) Bug,所以此處還是使用邊框線來替代坐標(biāo)軸線。
?
(三) 坐標(biāo)軸樣式
?
分別設(shè)置左側(cè)和底部的坐標(biāo)軸,可進(jìn)行縮放、平移、刻度線、網(wǎng)格線的開關(guān)和設(shè)置等。
?
(四) 自定義 Tracker
自定義 Tracker 在界面上設(shè)置,通過設(shè)置 Tracker 的控件模板來完成:
?
更多樣式可參考該控件庫(kù)的示例代碼:
?
四、裝配和數(shù)據(jù)填充
樣式設(shè)置完成后,將坐標(biāo)軸和線條裝入 PlotModel 中:
?
數(shù)據(jù)填充到線條的 Points 中,ResetAllAxes () 方法可重置坐標(biāo)軸,InvalidatePlot () 方法刷新數(shù)據(jù):
?
五、示例代碼
代碼地址:https://gitee.com/dlgcy/DLGCY_OxyPlotTester
發(fā)行版下載:https://gitee.com/dlgcy/DLGCY_OxyPlotTester/releases
說明:該項(xiàng)目使用 WPFTemplate 搭建,如果要克隆代碼,注意需進(jìn)行 Git 子模塊拉取操作。
程序界面:
WPF
【翻譯】WPF 中附加行為的介紹 Introduction to Attached Behaviors in WPF
WPF 使用 Expression Design 畫圖導(dǎo)出及使用 Path 畫圖
WPF?MVVM?彈框之等待框
解決 WPF 綁定集合后數(shù)據(jù)變動(dòng)界面卻不更新的問題(使用 ObservableCollection)
WPF?消息框?TextBox?綁定新數(shù)據(jù)時(shí)讓光標(biāo)和滾動(dòng)條跳到最下面
真?WPF?按鈕拖動(dòng)和調(diào)整大小
WPF?MVVM?模式下的彈窗
WPF?讓一組 Button 實(shí)現(xiàn)?RadioButton?的當(dāng)前樣式效果
WPF?原生綁定和命令功能使用指南
WPF?用戶控件的自定義依賴屬性在?MVVM?模式下的使用備忘
在WPF的MVVM模式中使用OCX組件
總結(jié)
以上是生活随笔為你收集整理的OxyPlot.Wpf 图表控件使用备忘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云原生ASP.NET Core程序的可监
- 下一篇: 在非容器(集群)环境下运行dapr