目前我使用window.addEventListener("beforeinstallprompt", (ev) => {
if (isStandalone()) {
// PWA already installed.
event.preventDefault();
return false;
} else {
// PWA not installed.
}
});
function isStandalone() {
// Check if device supports service workers
if (!('serviceWorker' in window.navigator)) return false;
// Check for Android
if (window.matchMedia('(display-mode: standalone)').matches) return true;
// Check for iOS
if (window.navigator["standalone"] == true) return true;
return false;
}
绘制多个matplotlib
数组(或列表)数据。这些对应于大约3000个图。情节是时间序列。
我的问题是,当这些列表变得太大并且有大量数据时,matplotlib非常慢。我读到numpy
可以快速绘制,但我的问题是:
你可以使用pyqtgraph绘制数据而不产生pyqtgraph
窗口,而是直接将它们保存到文件中吗? Matplotlib有一个更改后端的选项,因此它不会产生窗口,而只是创建文件,pyqtgraph有类似的内容吗?
你也认为,对于我的问题,pyqtgraph是正确的方法吗?我看到了很多用于实时绘制流数据的方法,但我想要做的并不涉及实时流数据。我应该使用其他东西为我的所有数据创建图吗?
答案 0 :(得分:1)
如果要保存图表的图像,则无需显示窗口,以下示例:
import pyqtgraph as pg
import pyqtgraph.exporters
plt = pg.plot([1, 2, 3, 4, 5], [2, 5, 2, 5, 2])
exporter = pg.exporters.ImageExporter(plt.plotItem)
exporter.parameters()['width'] = 640
exporter.export('fileName.png')
虽然该库有错误,但解决方案很简单,您必须转到文件pyqtgraph/exporters/ImageExporter.py
pyqtgraph
|
...
├── exporters
│ ├── ...
│ ├── ImageExporter.py
... ...
并更改第70行:
bg = np.empty((self.params['width'], self.params['height'], 4), dtype=np.ubyte)
为:
bg = np.empty((int(self.params['width']), int(self.params['height']), 4), dtype=np.ubyte)
<强> fileName.png 强>
<强>参考文献:强>
答案 1 :(得分:0)
要关闭默认情况下打开的窗口,可以添加plt.win.close()
,如下所示:
import pyqtgraph as pg
import pyqtgraph.exporters
plt = pg.plot([1, 4, 3, 9, 5], [2, 3, 2, 1, 0])
plt.win.close()
exporter = pg.exporters.ImageExporter(plt.plotItem)
exporter.parameters()['width'] = 640
exporter.export('fileName.png')