PyQtGraphは高速描画だということが分かったので、円グラフはどうなる?と始めたのですが....情報がない!
ダメなのかと思っていたら、PyQt5を使うと円グラフが描けるらしい。早速やってみる。
PyQt5での円グラフはコレ。
MatPlotLibのような円グラフができました。
ライブラリのインストールが必要です。
pip3 install PyQtChart --user
--userのとろこを自分のユーザー名にしないでください。そのまま素直に--userとしてください。ソースです。
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtChart import QChart, QChartView, QPieSeries, QPieSlice
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("円グラフ")
self.setGeometry(100,100, 600,480)
self.show()
self.create_piechart()
def create_piechart(self):
series = QPieSeries()
#append all values with a sum of 360
series.append("サッポロ", 30)
series.append("アサヒ", 60)
series.append("コカコーラ", 90)
series.append("ペプシ", 180)
#adding slice
slice = QPieSlice()
slice = series.slices()[2]
slice.setExploded(True)
slice.setLabelVisible(True)
slice.setPen(QPen(Qt.darkGreen, 1))
slice.setBrush(Qt.green)
slice = series.slices()[3]
slice.setExploded(False)
slice.setLabelVisible(True)
slice.setPen(QPen(Qt.red, 1))
#create chart
chart = QChart()
chart.addSeries(series)
chart.createDefaultAxes()
chart.setAnimationOptions(QChart.SeriesAnimations)
chart.setTitle("飲料会社")
chart.legend().setVisible(True)
chart.legend().setAlignment(Qt.AlignBottom)
chartview = QChartView(chart)
chartview.setRenderHint(QPainter.Antialiasing)
self.setCentralWidget(chartview)
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
seriesにグラフにする名前とデータをセットします。全データで360(度)になるようなデータです。
sliceは丸いケーキを切ったかけらのようなものです。 slice = series.slices()[2]ならコカコーラのデータを指します。
slice.setExploded(True)円グラフから飛び出す。slice.setLabelVisible(True)コカ・コーラと表示です。
このようにパイチャートの属性に変更は、
コチラを参考にしてください。
|