我想单独用pyqtgraph打开一个窗口,而不使用pyqt。
我想通过pyqtgraph在一个窗口中创建两个或多个轴,并在一个轴中绘制两条线。 我该怎么办?
以下代码创建多个窗口。
import pandas as pd
import pyqtgraph as pg
a = [
{'a': 5, 'b': 10, 'c': 5},
{'a': 4, 'b': 0.5, 'c': 1},
{'a': 3.5, 'b': 15, 'c': 9},
{'a': 2.1, 'b': 5, 'c': 8},
{'a': 0.1, 'b': 1, 'c': 5},
]
df = pd.DataFrame(a)
pg.plot(df['a'].values)
pg.plot(df['b'].values)
pg.exec()
以下代码不会创建窗口。
import pandas as pd
import pyqtgraph as pg
a = [
{'a': 5, 'b': 10, 'c': 5},
{'a': 4, 'b': 0.5, 'c': 1},
{'a': 3.5, 'b': 15, 'c': 9},
{'a': 2.1, 'b': 5, 'c': 8},
{'a': 0.1, 'b': 1, 'c': 5},
]
df = pd.DataFrame(a)
widget = pg.MultiPlotWidget()
widget.addItem(pg.PlotWidget(df['a'].values))
widget.addItem(pg.PlotWidget(df['b'].values))
pg.exec()
我认为这就是您正在寻找的:
import pandas as pd
import pyqtgraph as pg
a = [
{'a': 5, 'b': 10, 'c': 5},
{'a': 4, 'b': 0.5, 'c': 1},
{'a': 3.5, 'b': 15, 'c': 9},
{'a': 2.1, 'b': 5, 'c': 8},
{'a': 0.1, 'b': 1, 'c': 5},
]
df = pd.DataFrame(a)
app = pg.mkQApp()
fig_widget = pg.GraphicsLayoutWidget()
p1 = pg.PlotItem()
p2 = pg.PlotItem()
fig_widget.addItem(p1, 0, 0)
fig_widget.addItem(p2, 0, 1)
curve_1 = pg.PlotDataItem(df["a"].values)
curve_2 = pg.PlotDataItem(df["b"].values)
curve_3 = pg.PlotDataItem(df["c"].values)
p1.addItem(curve_1)
p1.addItem(curve_2)
p2.addItem(curve_3)
fig_widget.show()
app.exec()
此方法使用
pg.GraphicsLayoutWidget()
,可以向其中添加用作轴的绘图项,可以向其中添加用作线的绘图数据项。