網(wǎng)站首頁 編程語言 正文
PyQt5 QtChart-散點圖
QScatterSeries類將數(shù)據(jù)以散點圖顯示
import sys
import random
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QScatterSeries, QChart, QChartView, QPolarChart
class MyScatterWindow(QWidget):
def __init__(self, parent=None):
super(MyScatterWindow, self).__init__(parent)
self.resize(800, 600)
chart = QChart()
chartView = QChartView()
print(PYQT_VERSION_STR)
scatter = QScatterSeries()
for value in range(1, 500):
scatter.append(value, random.random()*10)
#scatter.append(QPointF(value, random.random()*10))
scatter.setName("散點圖")
scatter.setMarkerSize(8) # 標(biāo)記大小
# scatter.setMarkerShape(QScatterSeries.MarkerShapeRectangle) #方形標(biāo)記
scatter.setMarkerShape(QScatterSeries.MarkerShapeCircle) # 圓形標(biāo)記
pen = QPen()
pen.setColor(Qt.red)
pen.setWidth(2)
scatter.setPen(pen)
chart.addSeries(scatter)
chart.createDefaultAxes()
chartView.setChart(chart)
vbox = QVBoxLayout()
vbox.addWidget(chartView)
self.setLayout(vbox)
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MyScatterWindow()
win.show()
sys.exit(app.exec_())
效果圖?
補充
除了散點圖,PytQt5和QtChart還可以繪制其他的圖表。下面是小編為大家整理的其他圖表繪制的示例代碼,需要的可以參考一下
PyQt5 QtChart-餅狀圖
QPieSeries類將數(shù)據(jù)以餅狀圖顯示
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QPieSeries, QPieLegendMarker, QChart, QChartView
class MyPieWindow(QWidget):
def __init__(self, parent=None):
super(MyPieWindow, self).__init__(parent)
chart = QChart()
chartView = QChartView()
pieSeries = QPieSeries()
slice0 = pieSeries.append("鐵:%10", 1)
pieSeries.append("鋁:%20", 2)
pieSeries.append("銅:%70", 7)
pieSeries.setLabelsVisible()
pieSeries.setPieSize(0.6)
slice0.setExploded() # 外伸
slice0.setColor(QColor(255, 0, 150))
chart.setTitle("餅狀圖")
chart.addSeries(pieSeries)
chartView.setChart(chart)
chartView.setRenderHint(QPainter.Antialiasing)
vbox = QVBoxLayout()
vbox.addWidget(chartView)
self.setLayout(vbox)
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MyPieWindow()
win.show()
sys.exit(app.exec_())
PyQt5 QtChart-QLineSeries 折線圖
QLineSeries
QLineSeries類將數(shù)據(jù)序列顯示為折線圖,其核心代碼:
lineSeries = QLineSeries()
lineSeries.append(1, 3)
lineSeries.append(5, 8)
…
chart.addSeries(lineSeries)
常用方法:
- setPointsVisible(True) :設(shè)置數(shù)據(jù)點顯示狀態(tài)
- setPointLabelsVisible(True):設(shè)置數(shù)據(jù)點標(biāo)簽顯示狀態(tài)
- setPointLabelsFormat(“(@xPoint, @yPoint)”):設(shè)置數(shù)據(jù)點標(biāo)簽格式
- setPointLabelsFont(QFont(None, 8)) :設(shè)置數(shù)據(jù)點標(biāo)簽字體
- setPointLabelsColor(QColor(255, 0,0)) :設(shè)置數(shù)據(jù)點標(biāo)簽顏色
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtChart import *
import random
class MyWaveWindow(QWidget):
def __init__(self, parent=None):
super(MyWaveWindow, self).__init__(parent)
self.setWindowTitle("折線圖")
# 創(chuàng)建圖表 并設(shè)置相關(guān)參數(shù)
chart = QChart()
chart.setTitle("隨機折線圖")
chart.setAnimationOptions(QChart.SeriesAnimations)
chart.setAnimationDuration(1000)
chart.setAnimationEasingCurve(QEasingCurve.InOutCirc)
# chart.setTheme(QChart.ChartThemeBlueCerulean)
chart.legend().show()
# 創(chuàng)建折線數(shù)據(jù)序列
lineSeries = QLineSeries()
for value in range(0, 100):
lineSeries.append(value, round(random.random()*10, 2))
lineSeries.setPointsVisible(True)
lineSeries.setPointLabelsVisible(True)
lineSeries.setPointLabelsFormat("(@xPoint, @yPoint)")
lineSeries.setPointLabelsFont(QFont(None, 8))
lineSeries.setPointLabelsColor(QColor(255, 0, 0))
chart.addSeries(lineSeries)
# 創(chuàng)建軸坐標(biāo)
# chart.createDefaultAxes() # 創(chuàng)建默認(rèn)軸
axis_x = QValueAxis()
axis_x.setLabelFormat("%d")
axis_x.setMinorTickCount(3)
axis_x.setRange(0, 100)
chart.addAxis(axis_x, Qt.AlignBottom)
lineSeries.attachAxis(axis_x)
axis_y = QValueAxis()
axis_y.setLabelFormat("%d")
# axis_y.setTickType(QValueAxis.TicksDynamic)
axis_y.setTickCount(20)
axis_y.setMinorTickCount(3)
axis_y.setRange(0, 10)
chart.addAxis(axis_y, Qt.AlignLeft)
lineSeries.attachAxis(axis_y)
chartView = QChartView(chart)
chartView.setRenderHint(QPainter.Antialiasing)
layout = QVBoxLayout()
layout.addWidget(chartView)
self.setLayout(layout)
self.resize(800, 600)
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MyWaveWindow()
win.show()
app.exit(app.exec_())
原文鏈接:https://blog.csdn.net/songyulong8888/article/details/128329544
相關(guān)推薦
- 2022-06-01 Python學(xué)習(xí)之內(nèi)置函數(shù)總結(jié)_python
- 2022-06-22 C語言詳解判斷相同樹案例分析_C 語言
- 2024-03-28 存儲過程整合springboot
- 2022-06-12 Python閉包的使用方法_python
- 2023-02-18 React錯誤的習(xí)慣用法分析詳解_React
- 2022-05-27 yolov5訓(xùn)練時參數(shù)workers與batch-size的深入理解_python
- 2022-06-08 報錯:No fallback instance of type class**解決辦法
- 2022-09-12 關(guān)于Rsa?Public?Key?not?Find的問題及解決_數(shù)據(jù)庫其它
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支