pyqtgraph 如何将多个绘图添加到一个轴

问题描述 投票:0回答:1

我想单独用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()
pyqtgraph
1个回答
0
投票

我认为这就是您正在寻找的:

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()
,可以向其中添加用作轴的绘图项,可以向其中添加用作线的绘图数据项。

© www.soinside.com 2019 - 2024. All rights reserved.