📜  在Python使用 Matplotlib 绘制多个条形图

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

在Python使用 Matplotlib 绘制多个条形图

多条形图也称为分组条形图。条形图或条形图有许多自定义项,例如多个条形图、堆积条形图、水平条形图。多个条形图通常用于比较不同的实体。在本文中,讨论了绘制多个条形图。

示例 1:简单的多重条形图

在这个例子中,我们将看到如何使用 matplotlib 绘制多个条形图,这里我们绘制多个条形图来可视化每个组中的男孩和女孩的数量。

方法:

  1. 导入所需的库,例如用于使用数组执行数值计算的 numpy 和用于数据可视化的 matplotlib。
  2. 用于绘制多个条形图的数据被纳入列表。
  3. numpy 库中的 np.arange()函数用于创建一系列值。我们根据示例中的组数创建 X 轴值。
  4. 使用 plt.bar()函数绘制多个条形图。
  5. 为避免每组中的条形重叠,条形从 X 轴偏移 -0.2 个单位和 +0.2 个单位。
  6. 每组条的宽度取0.4个单位。
  7. 最后,在每个组中绘制男孩和女孩的多个条形图。

代码:



Python3
import numpy as np 
import matplotlib.pyplot as plt 
  
X = ['Group A','Group B','Group C','Group D']
Ygirls = [10,20,20,40]
Zboys = [20,30,25,30]
  
X_axis = np.arange(len(X))
  
plt.bar(X_axis - 0.2, Ygirls, 0.4, label = 'Girls')
plt.bar(X_axis + 0.2, Zboys, 0.4, label = 'Boys')
  
plt.xticks(X_axis, X)
plt.xlabel("Groups")
plt.ylabel("Number of Students")
plt.title("Number of Students in each group")
plt.legend()
plt.show()


Python3
import numpy as np
import matplotlib.pyplot as plt
   
Women = [115, 215, 250, 200]
Men = [114, 230, 510, 370]
  
n=4
r = np.arange(n)
width = 0.25
  
  
plt.bar(r, Women, color = 'b',
        width = width, edgecolor = 'black',
        label='Women')
plt.bar(r + width, Men, color = 'g',
        width = width, edgecolor = 'black',
        label='Men')
  
plt.xlabel("Year")
plt.ylabel("Number of people voted")
plt.title("Number of people voted in each year")
  
# plt.grid(linestyle='--')
plt.xticks(r + width/2,['2018','2019','2020','2021'])
plt.legend()
  
plt.show()


Python3
import numpy as np
import matplotlib.pyplot as plt
  
N = 3
ind = np.arange(N) 
width = 0.25
  
xvals = [8, 9, 2]
bar1 = plt.bar(ind, xvals, width, color = 'r')
  
yvals = [10, 20, 30]
bar2 = plt.bar(ind+width, yvals, width, color='g')
  
zvals = [11, 12, 13]
bar3 = plt.bar(ind+width*2, zvals, width, color = 'b')
  
plt.xlabel("Dates")
plt.ylabel('Scores')
plt.title("Players Score")
  
plt.xticks(ind+width,['2021Feb01', '2021Feb02', '2021Feb03'])
plt.legend( (bar1, bar2, bar3), ('Player1', 'Player2', 'Player3') )
plt.show()


输出 :

示例 2: 2018-2021 年投票的男性和女性人数

方法 :

  1. 导入所需的库,例如用于使用数组执行数值计算的 numpy 和用于数据可视化的 matplotlib。
  2. 多个条形图的男性和女性数据被放入一个列表中,以便于绘制。
  3. numpy 库中的 np.arange()函数用于创建一系列值。
  4. 使用 matplotlib 库中的 plt.bar()函数绘制多个条形图。
  5. 为避免每组中的条形重叠,在此示例中,条形从 X 轴偏移 0.25 个单位。
  6. 每组条的宽度取 0.25 个单位。
  7. X 轴标签(年)和 x 刻度按我们的可视化要求绘制。
  8. 最后,绘制了每年投票的男性和女性人数的多重条形图。

代码:

蟒蛇3

import numpy as np
import matplotlib.pyplot as plt
   
Women = [115, 215, 250, 200]
Men = [114, 230, 510, 370]
  
n=4
r = np.arange(n)
width = 0.25
  
  
plt.bar(r, Women, color = 'b',
        width = width, edgecolor = 'black',
        label='Women')
plt.bar(r + width, Men, color = 'g',
        width = width, edgecolor = 'black',
        label='Men')
  
plt.xlabel("Year")
plt.ylabel("Number of people voted")
plt.title("Number of people voted in each year")
  
# plt.grid(linestyle='--')
plt.xticks(r + width/2,['2018','2019','2020','2021'])
plt.legend()
  
plt.show()

输出 :



示例 3:不同球员在不同日期的得分

方法:

  1. 导入所需的库,例如用于使用数组执行数值计算的 numpy 和用于数据可视化的 matplotlib。
  2. numpy 库中的 np.arange()函数用于创建一系列值(此处为 3 个值)。
  3. 使用 matplotlib 库中的 plt.bar()函数绘制多个条形图。在此示例中,日期绘制在 X 轴上,玩家得分绘制在 Y 轴上。
  4. 为避免每组中的条形重叠,条形从前一个条形移动 0.25 个单位。
  5. 每组条的宽度取0.25个单位,颜色不同。
  6. X 轴标签和 x 刻度按我们的可视化要求绘制。
  7. 最后,绘制了不同球员在不同日期的得分的多重条形图。

代码:

蟒蛇3

import numpy as np
import matplotlib.pyplot as plt
  
N = 3
ind = np.arange(N) 
width = 0.25
  
xvals = [8, 9, 2]
bar1 = plt.bar(ind, xvals, width, color = 'r')
  
yvals = [10, 20, 30]
bar2 = plt.bar(ind+width, yvals, width, color='g')
  
zvals = [11, 12, 13]
bar3 = plt.bar(ind+width*2, zvals, width, color = 'b')
  
plt.xlabel("Dates")
plt.ylabel('Scores')
plt.title("Players Score")
  
plt.xticks(ind+width,['2021Feb01', '2021Feb02', '2021Feb03'])
plt.legend( (bar1, bar2, bar3), ('Player1', 'Player2', 'Player3') )
plt.show()

输出: