我有一个示例代码,它生成一对标准散点图,其中包含X和& Y.对于我正在进行的项目,我们不能使用matplotlib,而是坚持使用pyqtgraph(它是PyQt项目的一部分)。
from PyQt4 import QtGui
import pyqtgraph as pg
import pyqtgraph.exporters
import numpy as np
x = np.random.normal(size=100)
y = np.random.normal(size=100)
app = QtGui.QApplication([]) # create the application
w = QtGui.QWidget()
pwidget = pg.PlotWidget()
pwidget.addLegend(size=(100, 10)) # add a legend
pwidget.plot(x, y, pen=None, symbol="o", name="My Data") # plot the data
line = pg.InfiniteLine(angle=45, movable=False) # add a line through origin
pwidget.addItem(line)
pwidget.setXRange(-3, 3)
pwidget.setYRange(-3, 3)
layout = QtGui.QGridLayout()
w.setLayout(layout)
layout.addWidget(pwidget)
w.show()
app.exec_()
现在这段代码运行得很好,它应该做什么。这是弹出窗口的屏幕截图:
但是,当尝试这样导出时:
exporter = pg.exporters.ImageExporter(pwidget.plotItem)
exporter.export('D:/file_example.png')
我收到以下错误:
文件 " C:\ OSGeo4W64 \应用\ Python27 \ LIB \站点包\ pyqtgraph \出口\ ImageExporter.py&#34 ;, 第70行,在出口 bg = np.empty((self.params [' width'],self.params [' height'],4),dtype = np.ubyte)TypeError:'浮'对象不能被解释为 索引
Dr. Google告诉我这可能是我(必须)使用的版本的错误,并且有手动设置宽度和高度的解决方法。所以我更新了这样的代码:
exporter = pg.exporters.ImageExporter(pwidget.plotItem)
exporter.params.param('width').setValue(1024, blockSignal=exporter.widthChanged)
exporter.params.param('height').setValue(860, blockSignal=exporter.heightChanged)
exporter.export('D:/file_example.png')
以下令人不安的结果:
我玩exporter.params
,但没有改变结果。
任何想法都非常感谢,谢谢!