Pandas:如何在子图中绘制多个 dataframe


您可以使用以下基本语法在子图中绘制多个 pandas DataFrame:

 import matplotlib. pyplot as plt

#define subplot layout
fig, axes = plt. subplots (nrows= 2 , ncols= 2 )

#add DataFrames to subplots
df1. plot (ax=axes[0,0])
df2. plot (ax=axes[0,1])
df3. plot (ax=axes[1,0])
df4. plot (ax=axes[1,1])

以下示例展示了如何在实践中使用此语法。

示例:在子图中绘制多个 Pandas DataFrame

假设我们有四个 panda DataFrame,其中包含有关四个不同零售商店的销售和退货信息:

 import pandas as pd

#create four DataFrames
df1 = pd. DataFrame ({' sales ': [2, 5, 5, 7, 9, 13, 15, 17, 22, 24],
                    ' returns ': [1, 2, 3, 4, 5, 6, 7, 8, 7, 5]})

df2 = pd. DataFrame ({' sales ': [2, 5, 11, 18, 15, 15, 14, 9, 6, 7],
                    ' returns ': [1, 2, 0, 2, 2, 4, 5, 4, 2, 1]})

df3 = pd. DataFrame ({' sales ': [6, 8, 8, 7, 8, 9, 10, 7, 8, 12],
                    ' returns ': [1,0, 1, 1, 1, 2, 3, 2, 1, 3]})

df4 = pd. DataFrame ({' sales ': [10, 7, 7, 6, 7, 6, 4, 3, 3, 2],
                    ' returns ': [4, 4, 3, 3, 2, 3, 2, 1, 1, 0]})

我们可以使用以下语法在具有 2 行和 2 列布局的子图中绘制每个 DataFrame:

 import matplotlib. pyplot as plt

#define subplot layout
fig, axes = plt. subplots (nrows= 2 , ncols= 2 )

#add DataFrames to subplots
df1. plot (ax=axes[0,0])
df2. plot (ax=axes[0,1])
df3. plot (ax=axes[1,0])
df4. plot (ax=axes[1,1]) 

熊猫次要情节

四个数据帧中的每一个都显示在子图中。

请注意,我们使用axes参数来指定每个DataFrame的放置位置。

例如,名为df1的 DataFrame 被放置在行索引值为0 、列索引值为0的位置(例如左上角的子图)。

另请注意,您可以使用nrowsncols参数更改子图的布局。

例如,以下代码显示如何将子图组织为四行一列:

 import matplotlib. pyplot as plt

#define subplot layout
fig, axes = plt. subplots (nrows= 4 , ncols= 1 )

#add DataFrames to subplots
df1. plot (ax=axes[0])
df2. plot (ax=axes[1])
df3. plot (ax=axes[2])
df4. plot (ax=axes[3]) 

子图现在以四行一列的布局排列。

请注意,如果您希望子图在 y 轴和 x 轴上具有相同的比例,则可以使用shareysharex参数。

例如,以下代码显示如何使用sharey参数强制所有子图在 Y 轴上具有相同的比例:

 import matplotlib. pyplot as plt

#define subplot layout, force subplots to have same y-axis scale
fig, axes = plt. subplots (nrows= 4 , ncols= 1 , sharey= True )

#add DataFrames to subplots
df1. plot (ax=axes[0])
df2. plot (ax=axes[1])
df3. plot (ax=axes[2])
df4. plot (ax=axes[3]) 

请注意,每个子图的 Y 轴现在范围从 0 到 20。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何从 Pandas DataFrame 创建饼图
如何从 Pandas DataFrame 创建点云
如何从 Pandas DataFrame 创建直方图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注