brisonus_app_eq/ERNCTuningTool/test/test_chart.py

46 lines
1.4 KiB
Python
Raw Normal View History

2025-02-18 22:05:52 +08:00
import sys
from PySide6 import QtWidgets
import pyqtgraph as pg
import numpy as np
class MultiCurvePlotWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
# 创建布局并添加 PlotWidget
layout = QtWidgets.QVBoxLayout()
self.plot_widget = pg.PlotWidget()
layout.addWidget(self.plot_widget)
self.setLayout(layout)
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x) # 第一条曲线:正弦函数
y2 = np.cos(x) # 第二条曲线:余弦函数
y3 = np.tan(x) / 10 # 第三条曲线:正切函数(缩小范围以显示)
# 绘制多条曲线
self.plot_widget.plot(x, y1, pen='r', name="sin(x)")
self.plot_widget.plot(x, y2, pen='g', name="cos(x)")
self.plot_widget.plot(x, y3, pen='b', name="tan(x) / 10")
# 添加图例
self.plot_widget.addLegend()
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Multi-Curve Plot in QWidget")
# 将 MultiCurvePlotWidget 添加到主窗口
self.plot_widget = MultiCurvePlotWidget()
self.setCentralWidget(self.plot_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())