在同一个子图中叠加两个子图(matplotlib)

Art*_*Sbr 2 python matplotlib pandas

我使用matplotlib.plt和绘制了两个不同的子图pandas.DataFrame.plot

两个数字都存储在同一个 pandas 数据框中,我将其称为f. 您可以在此处下载示例数据

这些图之一无法用函数来描述(也就是说,一个x值可以产生两个或多个y值。这就是导致问题的原因(我正在尝试绘制一个正方形)。

我试过:

f[f['figure'] == 'fig1'].plot(x='x_axis', y='y_axis', legend=False)
f[f['figure'] == 'fig2'].plot(x='x_axis', y='y_axis', legend=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)

无花果

我希望将两个子图合并为一个子图。有没有办法在与第一个子图相同的子图中绘制第二个子图?我想将两个数字堆叠在一个子图中。

Spg*_*tCd 6

如果你存储了它的轴对象,你总是可以一次又一次地绘制到同一个图中,例如

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

f[f['figure'] == 'fig1'].plot(ax=ax, x='x_axis', y='y_axis', legend=False)
f[f['figure'] == 'fig2'].plot(ax=ax, x='x_axis', y='y_axis', legend=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)

请注意,这只是如何获取当前轴的一个示例 - 另一个示例可能是

ax = plt.gca()
Run Code Online (Sandbox Code Playgroud)

这里的要点是在pandas的plot命令中用axkwarg引用它。