pyqt5漂亮gui界面模板,pyqt绘制图形

  pyqt5漂亮gui界面模板,pyqt绘制图形

  * *欢迎来到我自己的博客网站:[www . feng wanqing . Xin](http://www . feng wanqing . Xin)* *

  最近在学习GUI编程的时候,想找一个绘图非常漂亮的库,无意间找到了PyQtGraph库!用这个库做出来的图非常好看!让我展示给你看:

  最近一直在研究这个数据库,但是没有中文文档,我就边看英文文档边翻译,以备将来参考(说白了就是英文不好!想检查的东西不能扫一眼!)咳咳~ ~以后可能会写自己的GUI编程经验。

  一、简介1.1什么是pyqtgraph?PyQtGraph是一个纯Python图形GUI库,充分利用了PyQt和PtSide的高质量图形表示水平和NumPy的快速科学计算和处理能力,广泛应用于数学、科学和工程领域。其主要目标是:

  为数据(绘图、视频等)提供快速的交互式图形显示。).提供工具帮助快速开发应用程序(例如Qt Designer中使用的属性树)。PyQtGraph由于其高性能的图形和numpy可以用于大量的数据处理,所以在Qt GUI平台中被广泛使用(通过PyQt或PySide)。特别是pyqtgraph使用了Qt的GraphicsView框架,这是一个强大的图形系统。我们将优化和简化的语句应用到这个框架中,以最小的工作量实现数据可视化。

  支持Linux、Windows和OSX系统

  1.2它能做什么?pyqtgraph的核心特性是:

  在基本的2D交互式视图中,可以平移/缩放框架绘制线和散点图数据。鼠标可以显示实时数据并快速绘制交互式图像。查找表和级别控制显示所有数据类型(int或float;Cdmj深度;RGB、RGBA或亮度)切片多维图像作为任何角度的函数。体数据的快速更新视频显示和实时交互式3D图形系统(需要Python OpenGL绑定)渲染。散点图网格的三维表面和等值面绘制。交互式视口旋转/缩放鼠标更易于编程。基本3D场景图形数据选择/标记和感兴趣的控制区域交互标记垂直/水平绘图位置和区域。从图像中选择任意区域并自动匹配切片数据。1.3示例PyQtGraph包含一系列示例,可通过运行以下命令进行访问:

  import pyqtgraph . examplesyqtgraph . examples . run()这将启动一个启动器并列出可用的示例。从列表中选择一个项目以查看其源代码,然后双击一个项目以运行该示例。

  注意,如果你已经用python setup.py开发并安装了pyqtgraph,那么这些例子会被错误地提示为顶层模块。在这种情况下,使用导入示例:examples.run()。

  1.4与其他绘图库matplotlib比较:对于绘图来说,pyqtgraph几乎没有matplotlib那么完整和成熟,但是运行速度更快。Matplotlib的目标是产生出版质量的图形,而pyqtgraph用于数据采集和分析。Matplotlib对于matlab程序员来说更直观。Pyqtgraph对于python/qt程序员来说更直观。Matplotlib(据我所知)并没有包含pyqtgraph的很多功能,比如图像交互、体绘制、参数树、流程图等。Pyqwt5:和pyqwt5差不多快,但是对于画图功能不完全一样。pyqtgraph中的图像处理更加完整(同样,qwt中没有ROI小部件)。另外,pyqtgraph是用纯python编写的,所以比开发经常落后于pyqt的pyqwt更容易移植(我本来用的是pyqwt,但是觉得在我的项目中依赖它太麻烦了)。就像matplotlib一样,pyqwt(据我所知)也不包含pyqtgraph的很多特性,比如图像交互、体绘制、参数树、流程图等。二。鼠标交互大多数使用pyqtgraph数据可视化的应用程序都会生成可以用鼠标交互缩放、平移和配置的小部件。本节描述鼠标与这些小部件的交互。

  2.1 2D图形在pyqtgraph中,大多数2D可视化遵循以下鼠标交互:

  左键:与场景中的项目交互(选择/移动对象等。).如果鼠标光标下没有可移动的东西,用左键拖动将平移场景。右键单击:缩放场景。拖动水平左/右缩放;向上/向下拖动垂直缩放(尽管有些场景的x/y缩放锁定在一起)。如果场景中有一个x/y轴可以闪烁,右键单击并拖动该轴会影响它。右键单击:在大多数情况下,右键单击会根据鼠标光标下的对象显示带有各种选项的上下文菜单。中键(或滚轮)拖动:按下滚轮拖动鼠标将始终平移场景(当场景中的其他对象阻止左侧平移时,此功能非常有用)。轮子旋转:放大和缩小场景。对于难以用右键或中键拖动的机器(一般是MAC),还有另外一种鼠标交互模式。在这种模式下,用鼠标左键拖动以在场景的某个区域绘制一个框。当释放按钮时,场景将缩放和平移以适合该框。您可以在上下文菜单中或通过调用以下命令来访问此模式:

  pyqtgraph . set config option( left buttonpan ,false) 2.2上下文菜单右键单击大多数场景会显示一个上下文菜单,其中包含用于更改场景行为的各种选项。该菜单中的一些选项包括:

  启用/禁用数据范围更改时的自动缩放将多个视图的轴链接在一起启用/禁用每个轴的鼠标交互显式设置可见范围值菜单中可用的确切项目取决于场景的内容和单击的对象。

  2.3 3D图形3D可视化使用以下鼠标交互:

  左键拖动:围绕中心点旋转场景的中间按钮拖动:通过在x-y平面上移动中心“视图”点来平移场景的中间按钮拖动CTRL:通过沿Z轴移动中心“视图”点来平移场景滚轮旋转:放大/缩小滚轮CTRL:更改视场角键盘控制:

  箭头键围绕中心点旋转,就像拖动鼠标左键一样。三。如何使用pyqtgraph?以下是一些使用pyqtgraph的建议方法:

  从交互式shell(python -i、ipython等)显示应用程序的弹出窗口。)使用命令行PyQtGraph将小部件嵌入到PyQt applications 3.1中使得从命令行可视化数据变得非常容易。注意:

  将pyqt图形导入为pgpg.plot (data) # data可以是值列表或numpy数组上面的示例将打开一个窗口,显示给定数据的折线图。对pg.plot的调用返回创建的绘图小部件的句柄,从而允许更多的数据被添加到同一个窗口。注意:python提示符下的交互式绘图只适用于PyQt当交互提示运行时,PySide不运行Qt事件循环。如果您想使用pyqtgraph与PySide交互,请参考“控制台”示例。

  其他示例:

  pw=pg.plot(xVals,yVals,pen= r )# plot x vs y in red pw . plot(x vals,yVals2,pen=b)win=pg。GraphicsWindow() #自动生成包含多项的网格win.addPlot(data1,row=0,col=0)win.addPlot(data2,row=0,Col=1) win.addplot (data3,row=1,col=0,Col span=2)pg . show(imagedata)# imagedata必须是一个2到4维的numpy数组我们在这里展示最基本的用法——这些函数接受许多不同的数据格式和选项来定制数据的外观。

  3.2应用中的显示窗口虽然我觉得这种方法很懒,但是“懒”往往和“效率”难以区分。这里的方法很简单,就是使用与命令行相同的功能,但是在现有的应用程序中使用。当我只想获得应用程序中数据状态的即时反馈,而不想花时间为它构建用户界面时,我经常使用它。

  3.3在PyQt应用程序中嵌入小部件对于严肃的应用程序开发人员来说,pyqtgraph中的所有函数都可以像其他Qt小部件一样通过嵌入来使用。更多重要信息,请参考:`` lotwidget `、`` imageview`、GraphicsLayoutWidget和`` GraphicsView``。PyQtGraph的小部件可以通过“提升到.”包含在Designer的ui文件中功能:

  设计师,创建一个QGraphics视图小部件(“Graphics View”类别下的“显示小部件”)。右键单击QGraphicsView并选择“提升至.”。在“升级的类名称”下,输入您想要使用的类的名称(“PlotWidget”、“GraphicsLayoutWidget”等)。).在“头文件”下,输入pyqtgraph。点击“添加”,然后点击“升级”。有关提升小部件的更多信息,请参见设计器文档。“VideoSpeedTest”和“ScatterPlotSpeedTest”的示例都演示了如何使用pyui4或pyside-uic编译成。py模块的。ui文件。“designerExample”示例演示了从。ui文件(不需要pyuic4/pyside-uic)。

  3.4 PyQt和PySide PyQtGraph支持Qt库的两个常用python包:PyQt和PySide。这两个软件包提供了几乎相同的API和功能,但是出于各种原因,您可能更喜欢使用一个或另一个软件包。第一次导入pyqtgraph时,它将通过检查来确定使用哪个库:

  如果已经导入了PyQt4,就使用它。否则,如果PySide已经导入,就使用它。否则,尝试导入PyQt4。如果导入失败,尝试导入PySide。如果您的系统上已经安装了这两个库,并且您想强制pyqtgraph使用其中一个,只需确保它在pyqtgraph之前导入即可:

  导入pyside # #这将强制pyqtgraph使用pyside而不是pyqt4将PyQtGraph导入为pg 3.5将pyqt图形库导入到大型项目中。使用pyqt graph编写应用程序或python包时,一般情况下,pyqtgraph安装在系统范围内(或在virtualenv中),在应用程序中调用import pyqtgraph。这样做的主要优点是pyqtgraph是独立于应用程序配置的,因此您(或您的用户)可以自由地安装新版本的pyqtgraph,而无需更改应用程序中的任何内容。这是用python开发时的标准做法。

  但是,尤其是科学应用,也是如此,就是软件是为了特定的目的而编写的,然后存档。如果我们想保证软件在十年后仍然可以正常工作,那么最好将应用程序绑定到特定版本的pyqtgraph,避免导入系统安装的pyqtgraph版本,该版本可能会更新(可能不兼容)。当应用程序需要对主要版本中可能不存在的pyqtgraph软件包进行特定修改时,情况尤其如此。

  PyQtGraph通过两种机制促进这种用法。首先,pyqtgraph中所有的内部导入语句都是相对的。它允许将包重命名或作为子包使用,而不会与系统中其他版本的pyqtgraph产生任何命名冲突(也就是说,pyqtgraph从未在内部将自己称为“pyqtgraph”)。其次,您可以在https://github.com/pyqtgraph/pyqtgraph-core.git,找到一个git子树存储库,它只包含‘pyqtgraph/’子树,允许代码被直接克隆为使用它的应用程序的子目录。

  基本方法是将存储烹饪到包装中的适当位置。从包中导入pyqtgraph时,请确保使用全名,以避免导入任何系统安装的pyqtgraph包。例如,假设一个简单的项目具有以下结构:

  My _ project/_ _ init _ _。pyplotting.py 此包使用的绘图函数将pyqtgraph作为pg def my _ plot _ function (* data)导入:pg.plot (* data)要导入特定版本的pyqtgraph,我们将在项目中克隆pyqtgraph-core存储库:

  my _ project $ git clone https://github.com/pyqtgraph/pyqtgraph-core.git然后相应地调整导入语句:

  my_project/__init__。py pyqtgraph/plotting.py 此包使用的绘图函数 将my_project.pyqtgraph导入为pg #确保使用本地子包#而不是任何全局安装的#版本。def my _ plot _ function(* data):pg . plot(* data)使用git check out pyqtgraph-core-x . x . x选择特定版本的存储库,或者使用git pull从上游拉取pyqtgraph更新(更多信息请参见git文档)。

  对于已经使用git进行代码控制的项目,还可以将pyqtgraph作为git树子目录包含在自己的仓库中。这种方法的主要优点是,除了能够从上游储存库获得PYT图更新之外,本地PYT图变化也可以被提交到项目储存库并被推送到上游:

  My _ project $ git remote add pyqtgraph-core https://github.com/pyqtgraph/pyqtgraph-core . git _ project $ git fetch pyqtgraph-core My _ project $ git merge-s ours-no-commit pyqtgraph-core/My _ project $ mkdir pyqtgraph My _ project $ git read-tree-u-prefix=pyqtgraph/pyqtgraph-core/core My _ project $ git commit-m 已将pyqtgraph添加到项目存储库中。更多信息,请参考git子树的文档。

  四。安装根据你的需求,安装pyqtgraph有很多不同的方法:$ pip安装pyqtgraph有些用户可能需要调用pip3。这种方法应该适用于所有平台。

  要访问最新的功能和错误,请从github复制pyqtgraph:$ git clone https://github.com/pyqtgraph/pyqtgraph现在您可以从源代码安装pyqtgraph:

  $ python setup.py安装.或者,您可以简单地将pyqtgraph文件夹放在可以导入它的地方,比如放在另一个项目的根目录中。PyQtGraph不需要以任何方式“构建”或编译。

  pyqtgraph软件包还有其他几种形式:

  anaconda :`` conda install pyqtgraph `` Debian、Ubuntu和类似的Linux:使用`` apt install python-pyqtgraph ``或下载。pyqtgraph官网网页顶部的deb文件。Arch Linux:安装包(感谢windel)。(https://aur.archlinux.org/packages.php? ID=62577)Windows:下载。pyqtgraph官网顶部的exe安装程序文件。五.配置PyQtGraph取决于:

  Python 2.7或Python 3。满足这些配置的最简单的方法是使用pip或科学的Python发行版,如Anaconda。

  后续还会继续更新,敬请期待....

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: