PyQtGraph 之PlotCurveItem 详解
PlotCurveItem
是 PyQtGraph 中用于显示曲线的图形项。以下是 PlotCurveItem
的主要参数和属性:
创建 PlotCurveItem 对象
import pyqtgraph as pg
# 创建一个 PlotCurveItem
curve = pg.PlotCurveItem()
常用的参数和属性
-
setData(x, y):
- 设置曲线的数据,其中
x
和y
分别是 x 轴和 y 轴的数据。
curve.setData(x=[1, 2, 3, 4], y=[2, 4, 6, 8])
- 设置曲线的数据,其中
-
setPen(pen=None, width=None, style=None):
- 设置曲线的画笔属性。
pen
: 画笔对象,可以是颜色字符串或pg.mkPen
创建的画笔。width
: 画笔宽度。style
: 画笔风格,如实线、虚线等。
curve.setPen('r') # 设置红色实线画笔
- 设置曲线的画笔属性。
-
setShadowPen(pen=None, width=None, style=None):
- 设置曲线的阴影效果的画笔属性。
curve.setShadowPen(pg.mkPen((70, 70, 30, 100), width=6)) # 设置阴影画笔
-
setFillBrush(brush=None):
- 设置曲线下方区域的填充刷属性。
curve.setFillBrush((100, 100, 255, 100)) # 设置蓝色半透明填充
-
**setSymbol(kwargs):
- 设置曲线上每个数据点的符号。
curve.setSymbol(size=10, symbol='o') # 设置圆形符号,大小为10
-
setClickable(state=True):
- 设置曲线是否可点击,如果可点击,可以捕获鼠标点击事件。
curve.setClickable(True)
-
setHoverPen(pen=None, width=None, style=None):
- 设置曲线在鼠标悬停时的画笔属性。
curve.setHoverPen(pg.mkPen('g', width=2, style=QtCore.Qt.DashLine)) # 鼠标悬停时绿色虚线
-
curve.opts:
- 包含曲线的其他选项,如
antialias
(抗锯齿)等。
curve.opts['antialias'] = True
- 包含曲线的其他选项,如
示例
以下是一个简单的示例,演示了如何使用 PlotCurveItem
:
import pyqtgraph as pg
from PyQt5.QtGui import QBrush, QColor
from PyQt5.QtCore import Qt
app = pg.mkQApp()
# Create a PlotWidget
plot_widget = pg.PlotWidget()
plot_widget.setWindowTitle('PlotCurveItem 示例')
# Create a PlotCurveItem
curve = pg.PlotCurveItem()
curve.setData(x=[1, 2, 3, 4], y=[2, 4, 6, 8])
# Set curve pen properties
curve.setPen('r', width=2, style=Qt.DashLine)
# Set curve shadow pen properties
curve.setShadowPen(pg.mkPen((70, 70, 30, 100), width=6))
# Set curve fill brush properties
curve.setBrush(QBrush(QColor(100, 100, 255, 100)))
# Add the curve to PlotWidget
plot_widget.addItem(curve)
# Create a ScatterPlotItem for data points
scatter = pg.ScatterPlotItem(size=10, symbol='o', pen=pg.mkPen('g'), brush=pg.mkBrush('g'))
scatter.setData(pos=[(1, 2), (2, 4), (3, 6), (4, 8)])
# Add the ScatterPlotItem to PlotWidget
plot_widget.addItem(scatter)
# Show PlotWidget
plot_widget.show()
# Start PyQtGraph event loop
app.exec_()
这个例子创建了一个包含 PlotCurveItem
的 PlotWidget
,并设置了曲线的各种属性。可以根据的需求调整这些属性以满足特定的绘图要求。