matplotlib可视化——柱状图

2.1 绘制柱状图

plt.bar链接

函数原型:

plt.bar(x, y, align="center", color='r', tick_label=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

其中:

  1. x:柱状图中的主体标签值。
  2. y:柱状图中柱体的高度
  3. align:柱体的对齐方式
  4. color:颜色
  5. tick_label:刻度标签值
  6. alpha:柱体的透明度

示例代码如下:

import matplotlib.pyplot as plt
import matplotlib
import random

# 设置中文字体
matplotlib.rcParams["font.sans-serif"]=["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False

# 构建数据
x = [i for i in range(10)]
y = [random.randint(0, 9) for j in range(10)]

# 绘制柱状图
plt.figure(figsize=(4, 4))
plt.bar(x, y, align="center", color='r', tick_label=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

plt.xlabel("x轴标签名称")
plt.ylabel("y轴标签名称")

plt.show()

显示结果如下:

avatar

如果不设置tick_label那么x轴显示的刻度标签值将会默认使用list的长度作为刻度

avatar

2.1.1 柱状堆积图

堆积图顾名思义就是将若干统计图形堆叠到一起的统计图,自然是一种组合式图形。
以实际可能遇到的问题来说明,在深度学习中数据集的数量可能随着时间以及人力投入数据越来越多,以两次的数据量为背景。

只要将前文介绍的bar()中的参数bottom设置成需要在下面的数据,具体代码示例如下:

import matplotlib.pyplot as plt
import matplotlib
import random

#设置中文字体
matplotlib.rcParams["font.sans-serif"]=["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False

# 构建数据
x = [i for i in range(1, 6)]
y1 = [6, 10, 4, 8, 9]
y2 = [1, 3, 4, 4, 5]

tick_label = ["person", 'car', 'ball', 'dog', 'cat']
# 绘制柱状图
plt.figure(figsize=(4, 4))
plt.bar(x, y1, align="center", color='r', tick_label=tick_label)
plt.bar(x, y2, align="center", color='b', bottom=y1, tick_label=tick_label)

plt.xlabel("数据类别")
plt.ylabel("数量")

plt.show()

结果显示:

avatar

2.1.2 多数据并列柱状图

想反映训练集、测试集上不同类别数量可以使用并列柱状图。

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

# 设置中文字体
matplotlib.rcParams["font.sans-serif"]=["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False

# 构建数据
x = np.arange(5)
y1 = [6, 10, 4, 8, 9]
y2 = [1, 3, 4, 4, 5]

bar_width  = 0.35
tick_label = ["person", 'car', 'ball', 'dog', 'cat']
# 绘制柱状图
plt.figure(figsize=(4, 4))

plt.bar(x, y1, bar_width, align="center", color='r', tick_label=tick_label, label='train')
plt.bar(x+bar_width, y2, bar_width, align="center", color='b', tick_label=tick_label, label='test')

plt.xlabel("数据类别")
plt.ylabel("数量")
# 设置x轴刻度显示位置
plt.xticks(x+bar_width/2, tick_label)

plt.legend(loc='upper right')
plt.show()

显示结果如下所示:

avatat
可以用过plt.legend(loc='upper right')设置lablel的位置,相关参数设置plt.legned参数说明

2.2 条形图

如果将柱状图的柱体由垂直方向变成水平方向,柱状图也就变成了条形图,使用barh()source,使用条形图也可以绘制堆积以及并列图,具体参数设计可以参考上述链接。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值