matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数: | 介绍 | 注 |
---|---|---|
x | 横坐标 | 序列 |
height | 纵坐标 | 序列 |
width | 条形图的宽度 | 默认为0.8 |
bottom | 用于绘制堆叠条形图 | 默认值为0 |
align | x轴刻度标签的对齐方式 | 包括:'center','edge',默认:'center' |
color | 指定条形图的颜色 | |
edgecolor | 指定条形图边框的颜色 | |
linewidth | 指定条形图边框的宽度 | 为0时,无边框 |
tick_label | 指定条形图的刻度标签 | |
xerr, yerr | 指定条形图误差线的 | |
ecolor | 指定条形图误差线的颜色 | |
capsize | 误差线的长度 | 默认值:无 |
error_kw | 将kwargs传递改errorbar 的方法 |
|
log | 是否对坐标轴进行log变换 | bool类型,默认为False |
orientation | 柱状图的形式(垂直或水平) | 包括:'vertical', 'horizontal',默认为'vertical'(垂直) |
示例
# 导入包
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
data_X = ['l1', 'l2', 'l3', 'l4', 'l5']
data_Y = [0.96332673, 0.41957767, 0.28530194, 0.66399872, 0.39162668]
data_Y1 = [0.95827706, 0.570968, 0.1820442, 0.6373498, 0.3974183]
data_Y2 = [0.52999985, 0.54202189, 0.6418166, 0.69023167, 0.90743048]
# 生成简单的柱状图
plt.bar(data_X, data_Y)
plt.show()
plt.barh(data_X, data_Y)
plt.show()
# 簇状柱形图
x = np.arange(len(data_X)) # 设定步长
width = 0.4 # 设置数据条宽度
fig, ax = plt.subplots()
p1 = ax.bar(x - width / 2, data_Y, width)
p2 = ax.bar(x + width / 2, data_Y1, width)
ax.set_xticks(x)
ax.set_xticklabels(data_X)
plt.show()
# 堆叠柱形图
x = np.arange(len(data_X)) # 设定步长
p1 = plt.bar(x, data_Y )
p2 = plt.bar(x, data_Y1, bottom=data_Y)#bottom 为数据条距坐标轴的距离
p3 = plt.bar(x, data_Y2, bottom=[data_Y1[i]+data_Y[i] for i in range(min(len(data_Y1),len(data_Y)))])
plt.xticks(x, data_X)
plt.show()
# 双向柱形图
x = np.arange(len(data_X)) # 设定步长
p1 = plt.bar(x, data_Y)
p2 = plt.bar(x, [-data_Y1[i] for i in range(len(data_Y1))])#将数据取成负数
plt.xticks(x, data_X)
plt.show()