PyQtGraph: Python科研必备数据可视化作图

2020-09-25
#Python

1.简介

PyQtGraph是一个纯python的图形和GUI库,构建于PyQt4/PySide和numpy之上,它主要用于数学/科学/工程应用方面。——推荐一款科研必备的Python数据可视化神器——PyQtGraph

2.安装

pip install pyqtgraph

conda install -c conda-forge pyqtgraph

3.学习资料

4.例子

终端下直接输入,弹出运行实例的界面:

python -m pyqtgraph.examples

5.Comparison to other python graphics packages

This part is from PyQtGraph - Scientific Graphics and GUI Library for Python.

Matplotlib is more or less the de-facto standard plotting library for python. If you are starting a new project and do not need any of the features specifically provided by pyqtgraph, you should start with matplotlib. It is much more mature, has an enormous user community, and produces very nice publication-quality graphics. Reasons you might want to use pyqtgraph instead:

1.Speed. If you are doing anything requiring rapid plot updates, video, or realtime interactivity, matplotlib is not the best choice. This is (in my opinion) matplotlib’s greatest weakness.

2.Portability / ease of installation. PyQtGraph is a pure-python package, which means that it runs on virtually every platform supported by numpy and PyQt, no compiling required. If you require portability in your application, this can make your life a lot easier.

3.Many other features–pyqtgraph is much more than a plotting library; it strives to cover many aspects of science/engineering application development with more advanced features like its ImageView and ScatterPlotWidget analysis tools, ROI-based data slicing, parameter trees, flowcharts, multiprocessing, and more.

VisPy is a new 2D/3D visualization library based on OpenGL that is developed as a collaboration between the authors of PyQtGraph, VisVis, Galry, and Glumpy. It is presently in early development and has a narrower scope than PyQtGraph–it will focus on visualization without the GUI toolkit features provided by PyQtGraph. In the long term, we hope VisPy will be able to replace Qt as the rendering engine for 2D graphics, and replace the pyqtgraph.opengl 3D system entirely. More about VisPy here.

PyQwt has a very nice set of features and is fast enough for realtime work. Its main drawback is that it is currently unmaintained and can be difficult to get working on a variety of platforms. Hopefully in the future it may find a new maintainer, but until then it may be best to avoid PyQwt (the original PyQwt maintainer is currently recommending to use pyqtgraph instead; check their mailing lists for updates). Like matplotlib, PyQwt lacks some of the more advanced features of pyqtgraph. Chaco is a very interesting project–nice graphics, good speed, and actively developed. Like PyQwt, however, Chaco can be challenging to install on a wide variety of platforms and lacks some of pyqtgraph’s more advanced features (although pyqtgraph certainly lacks many of Chaco’s features as well). GuiQwt is an interesting project with many advanced features similar to pyqtgraph. It is presently based on PyQwt and thus comes with some of its drawbacks, although there appear to be plans to change this in the future.