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