【Matplotlib数据可视化】绘制柱状图

1,204 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情

1. 柱状图绘制

首先,我们简单回顾一下柱状图大体内容以及Matplotlib库中的相应语法。

柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中

  • 特点:绘制离散的数据,能够清楚的看出各个数据的大小,比较数据之间的差别。(统计/对比)
  • 语法:plt.bar(x, width, align='center', **kwargs)
  • width:柱状条宽度
  • align:x坐标卡在柱的中间,左边,还是右边

2. 案例演示

案例需求:总共有10款自行车产品,分别对应10种销售价格,请将自行车与价格的关系图绘制成柱状图,并使用不同的颜色显示。

自行车销售价格与款式相关数据如下表所示:

自行车款式销售价格
款式A1800
款式B1530
款式C1988
款式D588
款式E1388
款式F998
款式G1099
款式H2199
款式I2999
款式J699

具体代码演示如下所示:

  • 其中plt.bar如果不传入参数color,则默认使用一个颜色绘制。
  • 我们需要修改x轴刻度显示,因为bicycle_name是字符串,所以,需要转化一下。即plt.xticks(x, bicycle_name)。
  • 头文件下方代码为开启中文显示,如果不添加该代码,则在最后的图像中不能显示中文。
import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要更改axes.unicode_minus参数
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

# 0. 准备数据
# 自行车款式
bicycle_name = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

# 横坐标
x = range(len(bicycle_name))
# 销售价格
y = [1800, 1530, 1988, 588, 1388, 998, 1099, 2199, 2999, 699]

# 1. 创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2. 绘制函数图像
plt.bar(x, y, width=0.5, color={'b', 'r', 'g', 'y', 'c', 'm', 'y', 'k', 'g', 'c'})
# 2.1 添加网格显示
plt.grid()
# 2.2 修改x轴刻度显示
plt.xticks(x, bicycle_name)
# 2.3 添加标题
plt.title("多款式自行车价格对比")

# 3. 显示图像
plt.show()

代码运行结果如下图所示:

image.png