跳至主要內容

Matplotlib 条形图

blacklad大约 2 分钟PythonPythonMatplotlib

Matplotlib 条形图

条形图是一种常用的可视化工具,用于比较不同类别的数据量或频率。

1 基本条形图

import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]

# 创建条形图,指定颜色和宽度
plt.bar(categories, values, color='blue', width=0.5)

# 添加标题和标签
plt.title('Simple Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')

# 显示图表
plt.show()
image-20241118203253190
image-20241118203253190

2 水平条形图

使用 barh 函数可以创建水平条形图

import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]

# 创建水平条形图
plt.barh(categories, values, color='green')

# 添加标题和标签
plt.title('Horizontal Bar Chart')
plt.xlabel('Values')
plt.ylabel('Categories')

# 显示图表
plt.show()
image-20241118203638496
image-20241118203638496

3 多组条形图

并排显示多组数据

import matplotlib.pyplot as plt

import numpy as np

# 数据
categories = ['A', 'B', 'C', 'D']
group1 = [3, 7, 5, 10]
group2 = [2, 6, 4, 8]

# 设置条形的位置
x = np.arange(len(categories))

# 创建条形图
width = 0.35  # 条形的宽度
plt.bar(x - width/2, group1, width, label='Group 1')
plt.bar(x + width/2, group2, width, label='Group 2')

# 添加标题和标签
plt.title('Grouped Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.xticks(x, categories)  # 设置 x 轴的标签
plt.legend()

# 显示图表
plt.show()
image-20241118203435135
image-20241118203435135

4 堆叠条形图

将多组数据堆叠在一起

import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D']
group1 = [3, 7, 5, 10]
group2 = [2, 6, 4, 8]

# 创建堆叠条形图
plt.bar(categories, group1, label='Group 1')
plt.bar(categories, group2, bottom=group1, label='Group 2')

# 添加标题和标签
plt.title('Stacked Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.legend()

# 显示图表
plt.show()
image-20241118203454726
image-20241118203454726

5 添加错误棒

在条形图上添加误差范围

import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]
errors = [0.5, 1, 0.7, 1.5]

# 创建条形图,添加误差棒
plt.bar(categories, values, yerr=errors, capsize=5)

# 添加标题和标签
plt.title('Bar Chart with Error Bars')
plt.xlabel('Categories')
plt.ylabel('Values')

# 显示图表
plt.show()
image-20241118203532063
image-20241118203532063

6 常用参数

  1. x:横轴上的位置,通常是一个列表或数组。
  2. height:每个条形的高度,通常是一个列表或数组。
  3. width:每个条形的宽度,默认值为 0.8。
  4. bottom:每个条形的基线位置,默认值为 0。
  5. align:条形与 x 轴标记的对齐方式,可选值为 'center'(默认)或 'edge'。
  6. color:条形的颜色,可以是单一颜色或颜色列表。
  7. edgecolor:条形边框的颜色,可以是单一颜色或颜色列表。
  8. linewidth:条形边框的宽度。
  9. tick_label:每个条形对应的标签,通常是一个列表。
  10. label:图例标签,用于图例说明。
  11. alpha:条形的透明度,取值范围从 0(完全透明)到 1(完全不透明)。
  12. log:是否使用对数刻度,默认值为 False。
上次编辑于:
贡献者: blacklad