📅  最后修改于: 2023-12-03 14:52:54.784000             🧑  作者: Mango
在 Python 中,我们可以使用 matplotlib 库来绘制图形。要在同一窗口中从 2 个数据帧绘制图形,我们可以使用子图(Subplot)功能。
首先,我们需要导入 matplotlib 库和 pandas 库,以及一个数据集。
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个数据集
df1 = pd.DataFrame({'x': range(1,11), 'y1': [1,3,2,4,6,5,7,8,9,10]})
df2 = pd.DataFrame({'x': range(1,11), 'y2': [2,4,1,5,8,6,9,7,10,3]})
接下来,我们需要创建一个包含两个子图的图形,以使我们可以在同一窗口中绘制两个数据帧。
# 创建一个包含两个子图的图形
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 设置子图1
ax1.plot(df1['x'], df1['y1'], color='red')
ax1.set_title('y1')
# 设置子图2
ax2.plot(df2['x'], df2['y2'], color='blue')
ax2.set_title('y2')
# 添加整个图形的标题
fig.suptitle('Comparison of y1 and y2')
在上面的代码中,创建了一个包含两个子图的图形,分别包含数据帧 df1 和 df2。然后,我们设置了每个子图的标题和颜色,并添加了整个图形的标题。
最后,我们需要调用 plt.show()
函数以显示图形。
# 显示图形
plt.show()
下面是完整的代码:
import pandas as pd
import matplotlib.pyplot as plt
# 创建一个数据集
df1 = pd.DataFrame({'x': range(1,11), 'y1': [1,3,2,4,6,5,7,8,9,10]})
df2 = pd.DataFrame({'x': range(1,11), 'y2': [2,4,1,5,8,6,9,7,10,3]})
# 创建一个包含两个子图的图形
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 设置子图1
ax1.plot(df1['x'], df1['y1'], color='red')
ax1.set_title('y1')
# 设置子图2
ax2.plot(df2['x'], df2['y2'], color='blue')
ax2.set_title('y2')
# 添加整个图形的标题
fig.suptitle('Comparison of y1 and y2')
# 显示图形
plt.show()
执行上面的代码后,将在同一窗口中显示两个数据帧的图形,如下所示:
所以,这是在同一窗口中从 2 个数据帧绘制图形的方法。