第12章 PyQtChart二維繪圖
Charts是Qt的一個(gè)二維圖表模塊,可以繪制各種常見的二維圖表,如折線圖、柱狀圖、餅圖、散點(diǎn)圖、極坐標(biāo)圖等,功能比較全面,繪制的圖形效果也比較美觀,是用于數(shù)據(jù)二維可視化的有力工具。PyQtChart是Qt Charts模塊的Python綁定,它需要單獨(dú)安裝。
本章首先介紹PyQtChart模塊的基本特點(diǎn)和功能,以畫折線圖為例介紹用PyQtChart繪制一個(gè)二維圖表的程序基本結(jié)構(gòu),以及一個(gè)圖表的各組成部分的程序控制方法,然后介紹散點(diǎn)圖、柱狀圖、餅圖、蠟燭圖等典型圖表的繪制,還有圖表框選縮放、左右雙坐標(biāo)軸、對數(shù)坐標(biāo)軸、時(shí)間日期坐標(biāo)軸等一些功能的實(shí)現(xiàn)。
12.1 PyQtChart概述
12.2 QChart繪制折線圖
實(shí)例Demo12_2以繪制折線圖為例,詳細(xì)介紹圖表各個(gè)部分的設(shè)置和操作,包括圖表的標(biāo)題、圖例、邊距等屬性設(shè)置,QLineSeries序列的屬性設(shè)置,QValueAxis坐標(biāo)軸的屬性設(shè)置等。程序運(yùn)行時(shí)界面如圖12-5所示。
圖12-5 示例Demo12_2運(yùn)行時(shí)界面
12.3 QChart繪圖高級功能
本節(jié)再通過一個(gè)實(shí)例Demo12_3介紹繪制圖表的一些高級和實(shí)用功能的實(shí)現(xiàn),如通過鼠標(biāo)拖放框選一個(gè)范圍放大、顯示鼠標(biāo)處的坐標(biāo)數(shù)值等。
圖12-11 實(shí)例Demo12_3運(yùn)行時(shí)界面
12.4 對數(shù)坐標(biāo)軸和多坐標(biāo)軸
本節(jié)通過實(shí)例Demo12_4演示如何使用對數(shù)坐標(biāo)軸QLogValueAxis,以及如何在一個(gè)圖表中附加左、右兩個(gè)坐標(biāo)軸,兩個(gè)序列的縱軸分別使用左軸和右軸,但是共用底部的橫軸。實(shí)例運(yùn)行時(shí)界面如圖12-13所示。
圖12-13 示例Demo12_4運(yùn)行時(shí)界面
12.5 餅圖和各種柱狀圖
圖12-15 實(shí)例Demo12_5運(yùn)行時(shí)界面
?
圖12-18 餅圖繪圖界面
12.6 蠟燭圖和日期時(shí)間坐標(biāo)軸
蠟燭圖是股票等金融數(shù)據(jù)分析常用的一種圖形,PyQtChart模塊中用于繪制蠟燭圖的序列類是QCandlestickSeries。實(shí)例Demo12_6使用QCandlestickSeries序列類繪制蠟燭圖曲線,同時(shí)橫坐標(biāo)軸使用了日期時(shí)間坐標(biāo)軸類QDateTimeAxis,可以方便地以日期時(shí)間數(shù)據(jù)作為坐標(biāo)數(shù)據(jù)。實(shí)例Demo12_6運(yùn)行時(shí)界面如圖12-19所示。
圖12-19 實(shí)例Demo12_6運(yùn)行時(shí)界面
12.7 區(qū)域填充圖
PyQtChart模塊中的QAreaSeries是一個(gè)用于繪制區(qū)域填充圖形的序列類。
圖12-20 實(shí)例Demo12_7運(yùn)行時(shí)界面
12.8 極坐標(biāo)圖
PyQtChart模塊中繪制極坐標(biāo)圖要用到QPolarChart類,它的父類是QChart。所以,QPolarChart是一個(gè)圖表類,而不是一個(gè)序列類。
在QPolarChart圖上可以使用QLineSeries,QSplineSeries,QScatterSeries,QAreaSeries等序列類繪圖,可以使用QValueAxis、QCategoryAxis等任何坐標(biāo)軸類作為徑向坐標(biāo)軸或角度坐標(biāo)軸。
實(shí)例Demo12_8使用QPolarChart和QSplineSeries繪制玫瑰線,徑向坐標(biāo)軸和角度坐標(biāo)軸都使用QValueAxis坐標(biāo)軸類。程序運(yùn)行時(shí)界面如圖12-23所示。
圖12-23 實(shí)例Demo12_8運(yùn)行時(shí)界面
?
<上一章>?????????????? <回主頁>??????????????? <下一章>
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
