没有合适的资源?快使用搜索试试~ 我知道了~
首页将matplotlib绘图嵌入pyqt的方法示例
将matplotlib绘图嵌入pyqt的方法示例
16 下载量 199 浏览量
更新于2023-05-04
1
收藏 43KB PDF 举报
我的终极整理,供参考 # coding:utf-8 import matplotlib # 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends中 FigureCanvas继承自QtWidgets.QWidget) from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5.QtWidgets import QDialog, QPushButton
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/13762192/bg1.jpg)
将将matplotlib绘图嵌入绘图嵌入pyqt的方法示例的方法示例
我的终极整理,供参考
# coding:utf-8
import matplotlib
# 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends中 FigureCanvas继承自QtWidgets.QWidget)
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import QDialog, QPushButton, QVBoxLayout
import matplotlib.pyplot as plt
import numpy as np
import sys
"""学好pyplot API和面向对象 API搞定matplotlib绘图显示在GUI界面上"""
class Main_window(QDialog):
def __init__(self):
super().__init__()
# 三步走,定Figure,定Axes,定FigureCanvas
# 1 直接一段代码搞定figure和axes
self.figure, (self.ax1, self.ax2) = plt.subplots(figsize=(13, 3), ncols=2)
# 2 先创建figure再创建axes
# 2.1 用plt.figure() / Figure() 创建figure, 推荐前者
self.figure = plt.figure(figsize=(5,3), facecolor='#FFD7C4')
# self.figure = Figure(figsize=(5,3), facecolor='#FFD7C4')
# 2.2 用plt.subplots() / plt.add_subplot() 创建axes, 推荐前者
(self.ax1, self.ax2) = self.figure.subplots(1, 2)
# ax1 = self.figure.add_subplot(121)
# ax2 = self.figure.add_subplot(122)
# 3 绑定figure到canvas上
self.canvas = FigureCanvas(self.figure)
self.button_draw = QPushButton("绘图")
self.button_draw.clicked.connect(self.Draw)
# 设置布局
layout = QVBoxLayout()
layout.addWidget(self.canvas)
layout.addWidget(self.button_draw)
self.setLayout(layout)
def Draw(self):
AgeList = ['10', '21', '12', '14', '25'] NameList = ['Tom', 'Jon', 'Alice', 'Mike', 'Mary'] # 将AgeList中的数据转化为int类型
AgeList = list(map(int, AgeList))
# 将x,y转化为numpy数据类型,对于matplotlib很重要
self.x = np.arange(len(NameList)) + 1
self.y = np.array(AgeList)
# tick_label后边跟x轴上的值,(可选选项:color后面跟柱型的颜色,width后边跟柱体的宽度)
self.ax1.bar(range(len(NameList)), AgeList, tick_label=NameList, color='green', width=0.5)
for a, b in zip(self.x, self.y):
self.ax1.text(a-1, b, '%d' % b, ha='center', va='bottom')
plt.title("Demo")
pos = self.ax2.imshow(np.random.random((100, 100)), cmap=plt.cm.BuPu_r)
self.figure.colorbar(pos, ax=self.ax2) # 终于可以用colorbar了
self.canvas.draw()
# 运行程序
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main_window = Main_window()
main_window.show()
app.exec()
总结就是,想要在特定的位置放matplotlib绘图还是要用面向对象的API,但混合使用pyplot的API可以使代码更简单。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38578242
- 粉丝: 3
- 资源: 945
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)