日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

chart.js 饼图显示百分比_实战PyQt5: 135-数据可视化之QChart绘制饼图

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 chart.js 饼图显示百分比_实战PyQt5: 135-数据可视化之QChart绘制饼图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

餅圖是數據可視圖表的基本類型,在QChart中,QPieSeries, QPieSlice處理餅圖的繪制。

QPieSeries

QPieSeries類以餅圖形式顯示數據。餅圖系列由定義為QPieSlice對象的切片組成。切片可以具有任何值,因為QPieSeries對象計算切片的百分比與系列中所有切片的總和之比,以確定圖表中切片的實際大小。餅圖的大小和在圖表上的位置是通過使用0.0到1.0范圍內的相對值來控制的,這些與實際的圖表矩形有關。默認情況下,該餅被定義為完整餅。通過設置系列的起始角度和角度跨度可以創建局部餅圖。完整的餅圖是360度,其中12點是0。

QPieSeries常用函數:

  • append(self, slice): 添加一個切片slice到餅圖中
  • append(label, value): 將指定label和value的切片添加到餅圖中,如果添加成功則返回切片對象,否則返回空值。
  • clear(self): 清除餅圖中的所有切片。
  • count(self): 獲得切片數目
  • setHoleSize(self):設置餅圖孔洞尺寸,該值相對于圖表矩形。0.0是最小大小(繪制完整的餅圖,不帶孔)。1.0是可以容納圖表的最大尺寸(甜甜圈沒有寬度)。默認值為0.0。設置此屬性時,如有必要,將調整size屬性,以確保孔大小不大于餅圖大小。
  • setLabelsVisible(self, visible): 將所有切片標簽的可見性設置為visible。注意:此功能僅影響序列中的當前切片。如果添加了新切片,則默認標簽可見性為False。
  • setPieStartAngle(self, startAngle): 設置餅圖的開始角度為startAngle,完整的餅圖是360度,其中12點是0度。默認值為360。
  • setPieEndAngle(self, endAngle): 設置餅圖結束角度為endAngle。
  • setPieSize(self, relativeSize): 設置餅圖的相對尺寸為relativeSize,該值相對于圖表矩形, 0.0是最小尺寸(未繪制餅圖),1.0是適合圖表的最大尺寸。默認值為0.7。設置此屬性時,如有必要,將調整holeSize屬性,以確保孔大小不大于餅圖大小。
  • sum(self): 返回餅圖中所有切片值的總和。
  • reomove(self, slice): 從餅圖中刪除指定的切片slice。切片將被永久刪除。
  • take(self, slice): 從餅圖中獲取由slice指定的單個切片。不刪除切片對象。

QPieSeries常用信號:

  • added(self, slices): 當slices加入到餅圖時信號被發射。
  • clicked(self,slice): 單擊由slice指定的切片時,發射該信號。
  • countChanged(self): 當切片計數改變時,該信號被發射。
  • doubleClicked(slef, slice): 雙擊由slice指定的切片時,將發出此信號。
  • hovered(self, slice, state): 當鼠標懸停在slice指定的切片上時,將發出此信號。當鼠標移到切片上時,state變為True,而當鼠標再次移開時,state變為False。
  • pressed(self, slice): 當用戶單擊由slice指定的切片并按住鼠標按鈕時,將發出此信號。
  • released(self, slice): 當用戶釋放對slice指定的切片的鼠標按下時,將發出此信號。
  • removed(self,slices): 當從餅圖中刪除由片段指定的slices時,將發出此信號。
  • sumChanged():當所有切片的總和發生變化時,將發射該信號。

QPieSlice

QPieSlice類表示一個餅圖系列中的單個切片。餅圖切片具有一個值和一個標簽。將切片添加到餅圖時,QPieSeries對象將計算該切片與該系列中所有切片的總和相比較的百分比,以確定圖表中切片的實際大小。默認情況下,標簽是隱藏的。如果可見,則可以將其放置在切片的外部,并用手臂將其連接,也可以將其水平或平行于切片弧的切線或法線居中放置在切片內部。默認情況下,切片的視覺外觀是由主題設置的,但是可以通過指定切片屬性來覆蓋主題。為了使用戶能夠與餅圖進行交互,當用戶單擊餅圖或將鼠標懸停在餅圖上時,會發出一些基本信號。

QPieSlice常用函數:

  • setBorderColor(self,color): 設置用于繪制切片邊界的顏色。
  • setBorderWidth(self, width):設置切片邊界的寬度。
  • setBrush(self, brush):設置用于填充切片的畫刷。
  • setColor(self, color): 設置切片的填充(畫刷)顏色。
  • setExplodeDistanceFactor(self, factor): 設置explode切片偏移餅的距離。1.0表示距離與半徑相同。0.5表示該距離是半徑的一半。默認距離為0.15。
  • setExploded(self, exploded): 設置切片的explode屬性。
  • setLabel(self, label): 設置切片的標簽。
  • setLabelArmLengthFactor(self, factor): 設置切片標簽臂的長度。該因數是相對于扇形半徑的。1.0表示距離與半徑相同。0.5表示該距離是半徑的一半。默認距離為0.15。
  • setLabelBrush(self, brush): 設置用于繪制切片的標簽和標簽臂的筆刷。
  • setLabelColor(self, color): 設置用于繪制切片標簽的顏色。
  • setLabelFont(self, font): 設置用于繪制標簽文本的字體。
  • setLabelPosition(self, position): 設置切片標簽的位置。
  • setLabelVisible(self, visible): 設置切片標簽的是否可見。默認情況下,標簽不可見。
  • setPen(self, pen): 設置用于繪制切片邊界的畫筆。
  • setValue(self, value): 設置切片與餅圖中所有切片的總和相比的百分比。實際值范圍是0.0到1.0。將切片添加到系列后,將自動更新。

QPieSlice 常用信號:

  • angleSpanChanged(self):當切片的角度跨度發生變化時,將發出此信號。
  • borderColorChanged(self):當切片邊界顏色更改時,將發射此信號。
  • borderWidthChanged(self):當切片邊界寬度改變時,該信號被發射。
  • brushChanged(self):當用于填充切片的筆刷更改時,將發出此信號。
  • clicked(self):單擊切片時會發出此信號。
  • colorChanged(self):當切片顏色改變時,該信號被發射。
  • doubleClicked(self):用戶雙擊切片時會發出此信號。
  • hovered(self,state):當鼠標懸停在切片上時,將發出此信號。當鼠標移到切片上時,state變為True,而當鼠標再次移開時,state變為False。
  • labelBrushChanged(self):切片的標簽筆刷更改時,將發出此信號。
  • labelChanged(self):切片標簽更改時將發出此信號。
  • labelColorChanged(self):切片標簽顏色更改時,將發出此信號。
  • labelFontChanged(self):當切片的標簽字體更改時,將發出此信號。
  • labelVisibleChanged(self):切片標簽的可見性更改時,將發出此信號。
  • penChanged(self):當用于繪制切片邊界的筆改變時,將發出此信號。
  • percentageChanged(self):當切片的百分比發生變化時,將發出此信號。
  • pressed(self):當用戶單擊切片并按住鼠標按鈕時,將發出此信號。
  • released(self):當用戶釋放切片上的鼠標按鍵時,將發出此信號。
  • startAngleChanged(self):切片的起始角度發生變化時,將發出此信號。
  • valueChanged(self):當切片值改變時,該信號被發射。

餅圖演示

代碼演示了一個簡單的餅圖顯示效果,完整代碼如下:

import?sysfrom?PyQt5.QtGui?import?QPainter,?QPenfrom?PyQt5.QtCore?import?Qtfrom?PyQt5.QtWidgets?import?QApplication,?QMainWindowfrom??PyQt5.QtChart?import?QChart,?QChartView,?QPieSeries,?QPieSlice?class?DemoChartPieSeries(QMainWindow):????def?__init__(self,?parent=None):????????super(DemoChartPieSeries,?self).__init__(parent)????????????????????#?設置窗口標題????????self.setWindowTitle('實戰?Qt?for?Python:?QChart餅圖演示')??????????????#?設置窗口大小????????self.resize(480,?360)?????????????? self.createChart()????????????def?createChart(self):??????????????#設置餅圖數據????????pieSeries?=?QPieSeries()????????pieSeries.append('Jane',?1)????????pieSeries.append('Joe',?2)????????pieSeries.append('Andy',?3)????????pieSeries.append('Barbara',?4)????????pieSeries.append('Axel',?5)????????????????#處理索引號為1的片????????pieSlice?=?pieSeries.slices()[1]????????pieSlice.setExploded()????????pieSlice.setLabelVisible()?#設置標簽可見,缺省不可見????????pieSlice.setPen(QPen(Qt.darkGreen,?2))????????pieSlice.setBrush(Qt.green)????????????????#創建圖表????????chart?=?QChart()????????chart.addSeries(pieSeries)????????chart.setTitle('簡單的餅圖示例')????????chart.legend().hide()????????????????#圖表視圖????????chartView?=?QChartView(chart)????????chartView.setRenderHint(QPainter.Antialiasing)????????????????self.setCentralWidget(chartView)??????????????if?__name__?==?'__main__':????app?=?QApplication(sys.argv)????window?=?DemoChartPieSeries()????window.show()????sys.exit(app.exec())???

運行運行結果如下:

QChart餅圖演示

甜甜圈圖示例

使用一個去掉中心部分形成一個圈狀餅圖,演示一個甜甜圈的物質成分,完整代碼如下:

import?sysfrom?PyQt5.QtCore?import?Qtfrom?PyQt5.QtGui?import?QPainter,?QFontfrom?PyQt5.QtWidgets?import?QApplication,?QMainWindowfrom??PyQt5.QtChart?import?QChart,?QChartView,?QPieSeries,?QPieSlice?class?DemoChartDonut(QMainWindow):????def?__init__(self,?parent=None):????????super(DemoChartDonut,?self).__init__(parent)????????????????????#?設置窗口標題????????self.setWindowTitle('實戰?Qt?for?Python:?QChart甜甜圈圖演示')??????????????#?設置窗口大小????????self.resize(480,?360)?????????????? self.createChart()????????????def?createChart(self):??? ???????????#設置餅圖數據????????pieSeries?=?QPieSeries()????????pieSeries.setHoleSize(0.35)????????pieSeries.append('蛋白質?4.2%',?4.2)????????pieSlice?=?pieSeries.append('脂肪?15.6%',?15.6)????????pieSlice.setExploded()????????pieSlice.setLabelVisible()?#設置標簽可見,缺省不可見????????pieSeries.append('其他?23.8%',?23.8)????????pieSeries.append('碳水化合物?56.4%',?56.4)????????????????#圖表視圖????????chartView?=?QChartView()????????chartView.setRenderHint(QPainter.Antialiasing)????????chartView.chart().setTitle('檸檬汁甜甜圈(100克)')????????chartView.chart().addSeries(pieSeries)????????chartView.chart().legend().setAlignment(Qt.AlignBottom)????????chartView.chart().setTheme(QChart.ChartThemeBlueCerulean)????????chartView.chart().legend().setFont(QFont('Arial',?8))?#圖例字體????????????????self.setCentralWidget(chartView)??????????????if?__name__?==?'__main__':????app?=?QApplication(sys.argv)????window?=?DemoChartDonut()????window.show()????sys.exit(app.exec())???

運行結果如下圖:

甜甜圈的物質成分示意

本文知識點

  • 餅圖控制類QPieSeries。
  • 餅圖切片類QPieSlice。
  • 繪制一個中空的餅圖。
  • 設置餅圖的背景主題。
  • 設置餅圖的圖例。

前一篇: 實戰PyQt5: 134-數據可視化之QChart繪制折線圖

總結

以上是生活随笔為你收集整理的chart.js 饼图显示百分比_实战PyQt5: 135-数据可视化之QChart绘制饼图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。