我的终极整理,供参考

# 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可以使代码更简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: 将matplotlib绘图嵌入pyqt的方法示例

本文地址: http://www.cppcns.com/jiaoben/python/297907.html

qpython怎么用matplotlib_将matplotlib绘图嵌入pyqt的方法示例相关推荐

  1. python利用matplotlib做饼图_python利用matplotlib库绘制饼图的方法示例

    介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当 ...

  2. Matplotlib绘图(基础篇)

    目录 一.Matplotlib绘图的编程方式: 1.pyplot: 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API.(常用) 2.pylab:将Matplotlib和Nu ...

  3. Matplotlib 绘图 笔记

    文章目录 简介 应用 代码实操 折线图绘制与显示 绘制数学函数图像 散点图绘制 绘制柱状图 绘制直方图 饼图 简介 Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化, ...

  4. python数据处理7: matplotlib绘图保存图片深入

    matplotlib绘图保存图片深入 系列目录 模块导入 图片大小.像素 图形大小.边距 字体与大小 坐标轴 源码 定义 问题 matplotlib:ValueError: bottom cannot ...

  5. GUI程序中的Matplotlib绘图

    1.示例程序和运行效果 一般的书上介绍Matplotlib的绘图功能都主要是介绍matplotlib.pyplot模块中的指令式绘图功能,因为这种方式与MATLAB很相似,使用过MATLAB的人转而使 ...

  6. 使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图

    使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图 1. EoN是什么 2. 安装 3. 效果图 4. 源代码 4.1 源码 4.2 源码 参考 写这篇博客源于博友的提问 ...

  7. Python使用matplotlib绘图并去除颜色样条colorbar实战:remove colorbar from figure in matplotlib

    Python使用matplotlib绘图并去除颜色样条colorbar实战:remove colorbar from figure in matplotlib 目录 Python使用matplotli ...

  8. <笔记1>matplotlib绘图工具笔记

    matplotlib绘图工具笔记 python中有许多非常方便的可视化工具,例如matplotlib,seaborn等.在这里主要总结matplotlib的简单绘图方法. 设置图形的大小和中文显示,图 ...

  9. python笔记4(矩阵和随机数 matplotlib绘图基础散点图折线图柱状图)

    记录python听课笔记 文章目录 记录python听课笔记 一,矩阵 1.1矩阵创建 1.2矩阵运算 矩阵的乘法 矩阵转置T 矩阵求逆I 二,随机数 2.1随机数模块 numpy.random 2. ...

最新文章

  1. selector多路复用_超详细的I/O多路复用概念、常用I/O模型、系统调用等介绍
  2. python实现api接口的脚本_Zabbix批量添加主机,Python调用api接口方式【脚本定制】...
  3. Django中间件与python日志模块 介绍
  4. 使用QuickCHM软件轻松编译CHM格式的文件
  5. initPlayer初始化过程(一)
  6. 帝国cms怎么搭建python环境_Python 库/模块的pip安装和IPython的使用
  7. App后台开发运维和架构实践学习总结(13)——OAuth 2.0 概述流程理解
  8. PHP一阶段 html+css+js 练习题汇总
  9. NoSQL数据库的四大分类及分析
  10. ASP.NET----GridView控件设置超链接
  11. 丁磊推荐《你的灯亮着吗》为三大管理必读书
  12. arcgis中 shift数据重新定义投影_【更新82篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...
  13. gif 格式图片详解
  14. TF flags的简介
  15. 目前微型计算机主要采用电子原件是,目前,个人计算机使用的电子元器件主要是()。...
  16. 使用EPW计算孤立ME方程
  17. 初识DE2-115(包含光盘demo)
  18. 新款自助机存在的故障隐患及解决方法
  19. 使用计算机翻译软件,memoQ(计算机翻译工具)
  20. 数据库之MySQL自定义函数

热门文章

  1. 【AWSL】之Linux账号和权限管理(/etc/passwd、/etc/shadow、useradd、passwd、usermod、groupadd、gpasswd...chmod、chown)
  2. js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
  3. instanceof java list_Java:Instanceof和泛型
  4. dokuwiki mysql_dokuwiki安装和使用总结 (windows安装版本)
  5. Flink Forward Asia 2021 正式启动!议题火热征集中!
  6. App 不想被“点名”,mPaaS 隐私合规检测为开发者护航数字生态建设
  7. 函数计算镜像加速:从分钟到秒的跨越
  8. 浩鲸科技携手阿里云原生共同打造“场域运营数字化解决方案”
  9. 优酷播控实践:基于规则引擎的投放管控模型
  10. 揭秘 MWU 最佳画质游戏《永劫无间》技术历程