第13章 PyQtDataVisualization三維繪圖
Data Visualization是Qt中的一個三維數據可視化模塊,可以繪製三維柱狀圖、三維散點圖、三維曲面等。Data Visualization模塊的功能雖然不能和一些專業的三維圖形類庫(如VTK)相提並論,但是它簡單易用,對於簡單的三維數據顯示是比較實用的。PyQt5中並沒有Data Visualization模塊,需要單獨安裝PyQtDataVisualization包。
本章首先介紹PyQtDataVisualization模塊的基本組成和主要類的功能,然後介紹三維柱狀圖、三維散點圖和三維曲面的繪製方法。
13.1 PyQtDataVisualization模塊概述
13.2 三維柱狀圖
實例Demo13_1使用Q3DBars圖表類和QBar3DSeries序列類繪製一個三維柱狀圖,並在界面上對其一些常見屬性和操作進行控制,程序運行時界面如圖13-5所示。
圖13-5 實例Demo13_1運行時界面
13.3 三維散點圖
要繪製三維散點圖,需要用到圖表類Q3DScatter,序列類QScatter3DSeries和數據代理類QScatterDataProxy。實例Demo13_2使用這些類演示了三維散點圖繪製的基本方法,程序運行時界面如圖13-8所示,它繪製了一個“墨西哥草帽”的散點圖,但是在運行時可以修改散點的座標,可以添加新的散點,可以刪除散點。
圖13-8 示例Demo13_2運行時界面
13.4 三維曲面圖
繪製三維曲面使用Q3DSurface圖表類和QSurface3DSeries序列,根據使用的數據代理類的不同,可以繪製兩種三維曲面圖。
- QSurfaceDataProxy數據代理類,根據空間點的三維座標繪製曲面,如一般的三維函數曲面。實例Demo13_3演示這種圖表的繪製。
- QHeightMapSurfaceDataProxy數據代理類,根據一個圖片的數據繪製三維曲面,典型的如三維地形圖。實例Demo13_4演示這種圖表的繪製。
圖13-11 實例Demo13_3繪製的三維曲面圖