使用多个数据帧和列在同一图表上绘制pandas数据帧子图,显示相同的列。

9 浏览
0 Comments

使用多个数据帧和列在同一图表上绘制pandas数据帧子图,显示相同的列。

以下代码展示了两个DataFrame的列,如下图所示。\n如何将相同的列显示在同一张图上。\n

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 创建虚拟的pandas数据框
pd1 = pd.DataFrame({'a':np.random.random(22),'b':np.random.random(22),
                    'c':np.random.random(22)})
pd2 = pd.DataFrame({'a':np.random.random(22),'b':np.random.random(22),
                    'c':np.random.random(22)})
# 创建具有两个并排图表的子图
fig, axes = plt.subplots(nrows=3,ncols=2,figsize=(12,6))
# 在子图样式中绘制第一个pandas数据框
pd1.plot(ax = axes[:,0],subplots=True) 
# 在子图样式中绘制第二个pandas数据框
pd2.plot(ax = axes[:,1],subplots=True)
plt.show()

\n[点击查看图片](https://i.stack.imgur.com/Jb04j.png)

0
0 Comments

问题的原因是希望在同一张图上展示多个pandas数据帧(dataframe)中的相同列。代码中的解决方法是使用matplotlib库中的subplots函数创建一个包含多个子图的图形,并使用循环遍历每个列,并在每个子图上绘制相应的数据。

解决方法的详细步骤如下:

1. 使用matplotlib的subplots函数创建一个包含1行和3列的子图,指定图形的大小为12x6。

2. 使用zip函数将pd1中的列和子图对象进行配对,并通过循环遍历每对列和子图。

3. 在每个子图上,使用plot函数绘制pd1中当前列的数据,并通过label参数设置标签为"{列名} pd1"。

4. 在同一个子图上,使用plot函数绘制pd2中相同列的数据,并通过label参数设置标签为"{列名} pd2"。

5. 使用legend函数在每个子图上添加图例,以便区分不同的数据来源。

最终的输出是一张包含三个子图的图像,每个子图上都展示了两个数据帧中相同列的数据,并通过图例区分了数据来源。

0