这个想法是创建一个轴ax
和另一个相似的轴ax2 = ax.twinx()
,然后将每个数据框绘制到其中之一,df.plot(ax=ax)
和df2.plot(ax=ax2)
。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
a = np.linspace(-5,5, 11)
data1 = np.sort(np.random.rand(len(a),5))
data1[:,0] =a
data2 = np.sort(np.random.rand(len(a),5))*10
data2[:,0] =a
df = pd.DataFrame(data1, columns=["A", "B1", "C1", "D1", "E1"])
df2 = pd.DataFrame(data2, columns=["A", "B2", "C2", "D2", "E2"])
fig, ax = plt.subplots()
ax2 = ax.twinx()
df.plot(x="A", y=["B1", "C1", "D1", "E1"], ax=ax)
df2.plot(x="A", y=["B2", "C2", "D2", "E2"], ax=ax2, ls="--")
plt.show()
![在此输入图像描述](https://istack.dev59.com/nxoOT.webp)
如果您想要两个单独的图形(问题对此并不清楚),可以通过以下方式实现:
fig, (ax, ax2) = plt.subplots(ncols=2)
并且移除 twinx
函数的调用。
![在此输入图片描述](https://istack.dev59.com/R2FT1.webp)