PyQt5+QtChart绘制散点图
作者:SongYuLong的博客 发布时间:2023-02-27 01:50:43
标签:PyQt5,QtChart,散点图
PyQt5 QtChart-散点图
QScatterSeries类将数据以散点图显示
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) # 标记大小
# scatter.setMarkerShape(QScatterSeries.MarkerShapeRectangle) #方形标记
scatter.setMarkerShape(QScatterSeries.MarkerShapeCircle) # 圆形标记
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类将数据以饼状图显示
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类将数据序列显示为折线图,其核心代码:
lineSeries = QLineSeries()
lineSeries.append(1, 3)
lineSeries.append(5, 8)
…
chart.addSeries(lineSeries)
常用方法:
setPointsVisible(True) :设置数据点显示状态
setPointLabelsVisible(True):设置数据点标签显示状态
setPointLabelsFormat(“(@xPoint, @yPoint)”):设置数据点标签格式
setPointLabelsFont(QFont(None, 8)) :设置数据点标签字体
setPointLabelsColor(QColor(255, 0,0)) :设置数据点标签颜色
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("折线图")
# 创建图表 并设置相关参数
chart = QChart()
chart.setTitle("随机折线图")
chart.setAnimationOptions(QChart.SeriesAnimations)
chart.setAnimationDuration(1000)
chart.setAnimationEasingCurve(QEasingCurve.InOutCirc)
# chart.setTheme(QChart.ChartThemeBlueCerulean)
chart.legend().show()
# 创建折线数据序列
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)
# 创建轴坐标
# chart.createDefaultAxes() # 创建默认轴
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


猜你喜欢
- 使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估。效果如下(演示视频): 由于这是通过比较面部色素的变化评估
- 先贴代码package mainimport ("fmt")// Send the sequence 2, 3, 4,
- 类常量是PHP面向对象程序设计中非常重要的一个概念,牢固掌握类常量有助于进一步提高PHP面向对象程序设计的水平。本文即以实例形式描述了PHP
- 本方法只做学习研究之用,不得用于商业用途若经济条件允许,请支持并购买正版,链接地址:https://www.jetbrains.com/py
- CREATE DEFINER=`root`@`localhost` PROCEDURE `createBusiness`(parameter
- 写在之前首先是写在之前的一些建议:首先是关于这本书,我真的认为他是将神经网络里非常棒的一本书,但你也需要注意,如果你真的想自己动手去实现,那
- 1. 为什么要查看梯度对于初学者来说网络经常不收敛,loss很奇怪(就是不收敛),所以怀疑是反向传播中梯度的问题(1)求导之后的数(的绝对值
- windows系统下安装Pyinstallercmd下输入指令pip install PyInstallerPyinstaller的使用进入
- 前言拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,python实现字符串转整型的int方法python已经实现了int
- 内连接(inner join)。 外连接: 全连接(full join)、左连接(left join)、右连接(right join)。 交
- 项目介绍:Golang100行代码实现高并发聊天室,其中实现的功能有:上下线广播,私聊,用户改名,超时强踢,在线用户检测等在开始项目前,我们
- 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads上传到服务器rz
- 先看一个例子:<?phpclass A{ public $b; public $c; public function A() { &n
- 问题描述有些小伙伴在使用python做GUI界面的时候可能想添加这么一个小功能,就是在界面的某个角落动态的显示当前的时间,本文将介绍具体方法
- 各位大哥: 在javascript中如何取整?比如: var
- 第一种:获取不带后缀的文件名,直接上代码:就是直接用basename()函数就可以返回路径中的文件名部分,其语法是“basename(pat
- 这篇文章主要介绍了Python urlopen()和urlretrieve()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作
- 第一种:import socket import fcntl import struct def get_ip_address(ifname
- 本文实例为大家分享了python分割一个文本为多个文本,供大家参考,具体内容如下# load file# for each row## if
- 现在,ORM框架、Web框架和配置都已就绪,我们可以开始编写一个最简单的MVC,把它们全部启动起来。通过Web框架的@decorator和O