PlotWidget绘制3条线,并分别设置图例,修改默认图例格式
时间: 2023-05-25 16:03:53 浏览: 277
以下是如何使用PlotWidget绘制3条线,并设置图例和修改默认图例格式的示例代码:
``` python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QFont
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle('Plotting Example')
self.setGeometry(100, 100, 800, 600)
# Create PlotWidget
self.plot_widget = PlotWidget(self)
self.plot_widget.setGeometry(50, 50, 700, 500)
# Create x and y data for the three lines
x_data = list(range(10))
y_data_1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y_data_2 = [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
y_data_3 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# Plot the lines
self.plot_widget.plot(x_data, y_data_1, pen=pg.mkPen(color='r', width=2), name='Line 1')
self.plot_widget.plot(x_data, y_data_2, pen=pg.mkPen(color='g', width=2), name='Line 2')
self.plot_widget.plot(x_data, y_data_3, pen=pg.mkPen(color='b', width=2), name='Line 3')
# Set the plot title and axis labels
self.plot_widget.setTitle('Line Plot', color='k', size='20pt', bold=True)
self.plot_widget.setLabel('left', 'Y-axis', size='16pt', color='k', bold=True)
self.plot_widget.setLabel('bottom', 'X-axis', size='16pt', color='k', bold=True)
# Customize the legend
legend = self.plot_widget.addLegend()
font = QFont()
font.setPointSize(12)
legend.setFont(font)
legend.setLabelTextColor('b')
legend.setBrush('w')
# Show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = MainWindow()
sys.exit(app.exec_())
```
在上面的代码中,我们使用PyQtGraph库中的PlotWidget类来创建绘图窗口,并使用plot()方法绘制了3条线,每个线都有不同的颜色和名称。我们使用setTitle()和setLabel()方法给图表和轴设置标题和标签。
我们还通过调用addLegend()方法创建一个图例,并使用setFont()、setLabelTextColor()和setBrush()方法对其进行自定义。对于setFont()方法,我们创建了一个QFont对象并设置了字体大小;setLabelTextColor()方法将图例文本颜色设置为蓝色;setBrush()方法将图例背景设置为白色。
运行代码,会得到一个如下所示的绘图窗口:
![](https://www.learnpyqt.com/wp-content/uploads/2020/01/plotting-example-3-lines.png)
这个例子中最重要的代码是:
``` python
self.plot_widget.plot(x_data, y_data_1, pen=pg.mkPen(color='r', width=2), name='Line 1')
self.plot_widget.plot(x_data, y_data_2, pen=pg.mkPen(color='g', width=2), name='Line 2')
self.plot_widget.plot(x_data, y_data_3, pen=pg.mkPen(color='b', width=2), name='Line 3')
```
这里我们使用了PlotWidget类的plot()方法创建了3个线图,每个线图都使用不同的颜色和名称。第一个参数是x轴数据,第二个参数是y轴数据。pen参数用于设置线条颜色和宽度,pg.mkPen()方法可以将颜色和线宽作为参数。最后的name参数是一个字符串,表示该线的名称/标签。
阅读全文