如何在 matplotlib 和 pyqt5 中使用 BytesIO?

泰勒·赫瑟林顿

我在 matplotlib 中制作了一个图形,并希望将其制作成图像并在我的 pyqt5 应用程序中使用它。有人建议我为此使用 BytesIO。到目前为止,这是我的代码:

绘制我的图形:

...
plt.axis('equal')
buff = io.BytesIO()
plt.savefig(buff, format="png")
print(buff)
return buff

然后在另一个脚本中调用它:

def minionRatioGraphSetup(self, recentMinionRatioAvg):
    image = minionRatioGraph(recentMinionRatioAvg)
    label = QtWidgets.QLabel()
    pixmap = QtGui.QPixmap(image)
    label.setPixmap(pixmap)
    label.setGeometry(QtCore.QRect(0,0,200,200))

它停止工作,pixmap = QtGui.QPixmap(image)我不确定为什么。另外:我怎么能把它放在我的主窗口中?因为我怀疑那里的代码会起作用,哈哈

存在的重要性欧内斯特

我确定有使用缓冲区的解决方案。然而,让字节格式正确似乎相当复杂。所以另一种方法是将图像保存到磁盘,然后从那里加载它。

import sys
from PyQt4 import QtGui
import matplotlib.pyplot as plt
import numpy as np

def minionRatioGraph():
    plt.plot([1,3,2])
    plt.savefig(__file__+".png", format="png")


class App(QtGui.QWidget):

    def __init__(self):
        super(App, self).__init__()
        self.setGeometry(300, 300, 250, 150)
        self.setLayout(QtGui.QVBoxLayout())
        label = QtGui.QLabel()
        label2 = QtGui.QLabel("Some other text label") 

        minionRatioGraph()

        qimg = QtGui.QImage(__file__+".png")  
        pixmap = QtGui.QPixmap(qimg)

        label.setPixmap(pixmap)
        self.layout().addWidget(label)
        self.layout().addWidget(label2)
        self.show()


if __name__ == '__main__':
    app = QtGui.QApplication([])
    ex = App()
    sys.exit(app.exec_())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在PyQt5中使Matplotlib图交互式

来自分类Dev

Matplotlib和PyQt5绘图图

来自分类Dev

使用PyQt5,如何连接点和线?

来自分类Dev

PyQT5:如何同时使用QLineEdit:Validator和InputMask?

来自分类Dev

在PyQT5中使用matplotlib检查按钮

来自分类Dev

在 PyQt5 中使用 Matplotlib 绘制 CSV 文件

来自分类Dev

PyQt5:如何在 PyQt5 中使用进度条?

来自分类Dev

如何在PyQt5中使用按键事件

来自分类Dev

如何在Python中使用PyQt5绘制折线?

来自分类Dev

matplotlib + PyQt5:如何传递参数?

来自分类Dev

VTK 和 PyQt5:如何在使用滑块更改半径值后刷新显示

来自分类Dev

如何在Pandas和Matplotlib中使用斧头

来自分类Dev

如何使用 Python、PyQt5 和 Pyinstaller 修复未正确显示的按钮

来自分类Dev

如何使用PyQt5 QtMultimedia

来自分类Dev

如何在 matplotlib 中使用 5 列作为日期?

来自分类Dev

如何在PyQt5中使用QWebSocket创建Websocket客户端

来自分类Dev

如何在pyqt5中使用lineEdit输入更改cwd

来自分类Dev

如何在pyqt5中使用拆分器切换布局?

来自分类Dev

如何在Pyqt5环境中用Pickle保存Matplotlib图形?

来自分类Dev

使用PyQt5运行命令并获取stdout和stderr

来自分类Dev

PyQT5和使用多列过滤表

来自分类Dev

python/Pyqt5 - 如何在使用 ast 和获取 ValueError 时避免 eval: attemt 中的格式错误以提高代码安全性

来自分类Dev

如何使用 PyQT5 附加和分离外部应用程序或停靠外部应用程序?

来自分类Dev

PyQt5 Matplotlib 数据图,带信号和带列表的槽

来自分类Dev

如何在熊猫和Matplotlib中使用1e7避免轴值

来自分类Dev

如何在Python matplotlib中使用分类变量更改x和y轴刻度?

来自分类Dev

如何在PyQt5中的Ui和类之间交换数据?

来自分类Dev

如何在PyQT5中自隐藏和显示QDialog()?

来自分类Dev

如何在Rails 5中使用select .... as和concat

Related 相关文章

  1. 1

    如何在PyQt5中使Matplotlib图交互式

  2. 2

    Matplotlib和PyQt5绘图图

  3. 3

    使用PyQt5,如何连接点和线?

  4. 4

    PyQT5:如何同时使用QLineEdit:Validator和InputMask?

  5. 5

    在PyQT5中使用matplotlib检查按钮

  6. 6

    在 PyQt5 中使用 Matplotlib 绘制 CSV 文件

  7. 7

    PyQt5:如何在 PyQt5 中使用进度条?

  8. 8

    如何在PyQt5中使用按键事件

  9. 9

    如何在Python中使用PyQt5绘制折线?

  10. 10

    matplotlib + PyQt5:如何传递参数?

  11. 11

    VTK 和 PyQt5:如何在使用滑块更改半径值后刷新显示

  12. 12

    如何在Pandas和Matplotlib中使用斧头

  13. 13

    如何使用 Python、PyQt5 和 Pyinstaller 修复未正确显示的按钮

  14. 14

    如何使用PyQt5 QtMultimedia

  15. 15

    如何在 matplotlib 中使用 5 列作为日期?

  16. 16

    如何在PyQt5中使用QWebSocket创建Websocket客户端

  17. 17

    如何在pyqt5中使用lineEdit输入更改cwd

  18. 18

    如何在pyqt5中使用拆分器切换布局?

  19. 19

    如何在Pyqt5环境中用Pickle保存Matplotlib图形?

  20. 20

    使用PyQt5运行命令并获取stdout和stderr

  21. 21

    PyQT5和使用多列过滤表

  22. 22

    python/Pyqt5 - 如何在使用 ast 和获取 ValueError 时避免 eval: attemt 中的格式错误以提高代码安全性

  23. 23

    如何使用 PyQT5 附加和分离外部应用程序或停靠外部应用程序?

  24. 24

    PyQt5 Matplotlib 数据图,带信号和带列表的槽

  25. 25

    如何在熊猫和Matplotlib中使用1e7避免轴值

  26. 26

    如何在Python matplotlib中使用分类变量更改x和y轴刻度?

  27. 27

    如何在PyQt5中的Ui和类之间交换数据?

  28. 28

    如何在PyQT5中自隐藏和显示QDialog()?

  29. 29

    如何在Rails 5中使用select .... as和concat

热门标签

归档