1. pyqtgraph绘图组件全景概览
第一次接触pyqtgraph时,最让我困惑的就是那一堆相似的绘图组件——PlotWidget、PlotItem、GraphicsLayout,它们看起来都能画图,但到底该用哪个?经过多个数据可视化项目的实战,我终于摸清了它们的门道。简单来说,这就像装修房子:PlotWidget是精装公寓,开箱即用;PlotItem是毛坯房,需要自己装修;GraphicsLayout则是整层楼,可以自由隔间。
pyqtgraph的绘图体系实际上分为三个层级。最底层是PlotDataItem这样的数据载体,相当于家具;中间层是PlotItem这样的容器,相当于房间;最上层是PlotWidget这样的完整组件,相当于带家具的样板间。这种分层设计给了开发者极大的灵活性——你可以直接使用现成的PlotWidget快速出图,也可以通过组合PlotItem和GraphicsLayout构建复杂的仪表盘。
我常用的选择策略是:快速原型用PlotWidget,需要精细控制用PlotItem,多图排版用GraphicsLayout。比如最近做传感器数据监控时,单个传感器的实时曲线用PlotWidget,需要添加参考线的用PlotItem,而四个传感器的对比面板则用GraphicsLayout实现。这种组合拳让开发效率提升了至少三倍。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. PlotWidget的极速绘图之道
2.1 五分钟上手指南
PlotWidget绝对是pyqtgraph里的"快枪手",三行代码就能画出专业级图表。记得我第一次用的时候,简直不敢相信这么简单:
python复制import pyqtgraph as pg
win = pg.PlotWidget()
win.plot([1,4,2,3,5], pen='r')
红色折线图瞬间呈现,连Qt的主循环都不用写——因为pg.plot()会自动创建QApplication。这种设计特别适合Jupyter Notebook里的快速可视化,我经常用它来检查算法中间结果。
但实际项目中更常见的用法是嵌入PyQt界面。这里有个小技巧:在QMainWindow里直接setCentralWidget,在QDialog里则要配合布局管理器。上周帮同事调试时,就发现他忘了加布局导致PlotWidget不
