📜  使用 Matplotlib 在条形图上绘制 Pandas 数据框的多列

📅  最后修改于: 2022-05-13 01:55:06.527000             🧑  作者: Mango

使用 Matplotlib 在条形图上绘制 Pandas 数据框的多列

先决条件:

  • 熊猫
  • Matplotlib

在本文中,我们将学习如何使用 Matplotlib 在条形图上绘制多列。条形图用于使用矩形条来表示数据类别。我们可以用重叠的边缘或在相同的轴上绘制这些条。在同一图表中绘制条形图的不同方法是使用 matplotlib 和 pandas 讨论如下。

方法 1:在 y 参数中提供多列

这里的技巧是将所有必须一起绘制的数据作为一个值传递给 plot 函数的 'y' 参数。

句法:  

方法:

  • 导入模块
  • 创建或加载数据
  • 将数据传递给 plot()
  • 绘制图形

例子:

Python3
# importing pandas library
import pandas as pd
# import matplotlib library
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Sammy', 'Joe'],
    'Age': [45, 38, 90],
    'Height(in cm)': [150, 180, 160]
})
  
# plotting graph
df.plot(x="Name", y=["Age", "Height(in cm)"], kind="bar")


Python3
# importing pandas library
import pandas as pd
# import matplotlib library
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Sammy', 'Joe'],
    'Age': [45, 38, 90],
    'Height(in cm)': [150, 180, 160]
})
  
# plotting Height
ax = df.plot(x="Name", y="Height(in cm)", kind="bar")
# plotting age on the same axis
df.plot(x="Name", y="Age", kind="bar", ax=ax, color="maroon")


Python3
# importing pandas library
import pandas as pd
# import matplotlib library
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Sammy', 'Joe'],
    'Age': [45, 38, 90],
    'Height(in cm)': [150, 180, 160]
})
  
# creating subplots and plotting them together
ax = plt.subplot()
ax.bar(df["Name"], df["Height(in cm)"])
ax.bar(df["Name"], df["Age"], color="maroon")


输出:

方法 2:通过在同一轴上绘图

在相同的轴上绘制所有单独的图形,按颜色区分是一种替代方法。这里再次使用了 plot()函数。

方法:

  • 导入模块
  • 创建或加载数据
  • 绘制第一张图
  • 在同一轴上绘制所有其他图形

例子:

蟒蛇3

# importing pandas library
import pandas as pd
# import matplotlib library
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Sammy', 'Joe'],
    'Age': [45, 38, 90],
    'Height(in cm)': [150, 180, 160]
})
  
# plotting Height
ax = df.plot(x="Name", y="Height(in cm)", kind="bar")
# plotting age on the same axis
df.plot(x="Name", y="Age", kind="bar", ax=ax, color="maroon")

输出:

方法 3:通过创建子图

创建此类功能的另一种方法是绘制多个子图并将它们显示为一个。这可以使用 subplot()函数来完成。

句法:

方法:

  • 导入模块
  • 创建或加载数据
  • 创建多个子图
  • 在单轴上绘图

例子:

蟒蛇3

# importing pandas library
import pandas as pd
# import matplotlib library
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Sammy', 'Joe'],
    'Age': [45, 38, 90],
    'Height(in cm)': [150, 180, 160]
})
  
# creating subplots and plotting them together
ax = plt.subplot()
ax.bar(df["Name"], df["Height(in cm)"])
ax.bar(df["Name"], df["Age"], color="maroon")

输出: