网站首页 > 技术文章 正文
关于pyqtgraph的介绍,有兴趣的可以看我的文章《pyqtgraph系列文章:折线图》。
什么是直方图?
直方图,又叫质量分布图,是表示数据的分布情况的统计图表。 常用横轴表示数据区间、纵轴表示分布情况,矩形柱体越高,表示落在这个区域的数量越大。
举个简单例子,针对某班级语文成绩数据,我们想看各个区间内的成绩,就可以用直方图来表示。:
考试语文成绩 | |||||||
浩渺 | 74 | 山厚 | 71 | 家靖 | 38 | 奕峰 | 75 |
璇子 | 85 | 绎涵 | 89 | 鹏涵 | 2 | 然度 | 97 |
智刚 | 40 | 晟永 | 89 | 科曦 | 97 | 鸿博 | 29 |
峥铭 | 5 | 政祯 | 18 | 华翰 | 30 | 信震 | 64 |
涛纪 | 100 | 良平 | 63 | 煦煜 | 23 | 振东 | 63 |
嘉瑞 | 2 | 炜睿 | 12 | 彬军 | 32 | 楠浩 | 69 |
云乐 | 93 |
语文成绩统计数据 | |
0分-59分 | 11 |
60分-79分 | 7 |
80分-100分 | 7 |
成绩通知数据生成直方图如下:
用pyqtgraph简单实现直方图
创建main.py,在文件中输入下面的代码。老规矩,直接上代码吧。
import os
import sys
import numpy as np
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore
from PyQt5.QtWidgets import QWidget, QApplication
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(600, 300)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "pyqtgraph example"))
class MainWindow(QWidget, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.setStyleSheet("background-color:rgb(255,255,255)")
self.showLineChart()
def showLineChart(self):
# 创建一个GraphicsWidget
win = pg.GraphicsLayoutWidget(self, show=True)
# 设置widget大小
win.resize(600, 300)
# 创建一个Plot画板
plot = win.addPlot(title="柱状图例子")
# 加入随机的点数据
barItem = pg.BarGraphItem(x=[1,2,3,4,5],height=[10,12,2,15,20,0], width = 0.5, brush=(107,200,224))
plot.addItem(barItem)
if __name__ == '__main__':
# 设置背景色
pg.setConfigOption('background', 'w')
# 设置平滑绘制
pg.setConfigOptions(antialias = True)
# 创建Application
app = QApplication(sys.argv)
# 创建对话框
mainWidget = MainWindow()
# 对话框显示
mainWidget.show()
# 执行app
sys.exit(app.exec_())
执行结果展示
命令行输入:python main.py,在绘制区域可以拖动图标移动位置,也可以通过滚动鼠标放大/缩小。
核心代码注解
代码40行:设置背景颜色。
代码42行:设置绘制线条平滑绘制,如果不设置这一项,绘制的折线会有锯齿。
代码28行:再MainWindow上创建一个GraphicsWidget,参数self表示在MainWindow上创建。
代码32行:创建一个坐标系画板,创建之后坐标系就出来了。
代码34行:设置直方图数据item。参数解释如下:
参数x:是一个列表数据[],参数x是有序的数据。
参数y:是纵坐标点上的数据,代表直方图高度。
参数width:代表直方图的柱体宽度,需要根据x轴高度进行调整。
参数brush:设置直方图颜色。
省略参数:这里省略了很多参数,如pen可以设置直方图边框颜色,感兴趣可以交流。
猜你喜欢
- 2024-11-12 Window对象的常见事件 window对象常用的方法有哪些?
- 2024-11-12 JavaScript Window - 浏览器对象模型
- 2024-11-12 Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)
- 2024-11-12 前端移动端常见问题 前端移动端适配方案
- 2024-11-12 WindowsServer2022:如何扩展磁盘空间?
- 2024-11-12 第36节 window对象的窗口-JavaScript
- 2024-11-12 JavaScript Screen对象 screen对象包含的属性可以修改
- 2024-11-12 「Pygame经典合集」??????终极白嫖大招:让你玩儿到爽
- 2024-11-12 Qt 教程| QScatterSeries 散点图 qt三维散点图
- 2024-11-12 PyQt5学习笔记——基本窗口组件(1)
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-