条形图函数pyplot.bar()/pyplot.barh()

今天我们学习的是条形图,使用的函数是:

plt.bar() 和 plt.barh()

(一)竖值条形图

(1)说明:

原函数定义:

bar(x, height, width=0.8, bottom=None, ***, align='center', data=None, **kwargs)

常见的参数属性

具体参考:官网说明文档

参数说明类型
xx坐标int,float
height条形的高度int,float
width宽度0~1,默认0.8
botton条形的起始位置也是y轴的起始坐标
align条形的中心位置“center”,"lege"边缘
color条形的颜色“r","b","g","#123465",默认“b"
edgecolor边框的颜色同上
linewidth边框的宽度像素,默认无,int
tick_label下标的标签可以是元组类型的字符组合
logy轴使用科学计算法表示bool
orientation是竖直条还是水平条竖直:"vertical",水平条:"horizontal"

(2)源代码:

 

"""默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib# 将全局的字体设置为黑体
matplotlib.rcParams['font.family'] = 'SimHei'# 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)# 绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, )# 展示图形
plt.show()

(3)输出效果:

01.png

(二)水平条形图

1.使用bar()绘制:

(1)说明

需要把:orientation="horizontal",然后x,与y的数据交换,再添加bottom=x,即可。

(2)源代码:

 

"""水平条形图,需要修改以下属性orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt# 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N)# 绘图 x= 起始位置, bottom= 水平条的底部(左侧), y轴, height 水平条的宽度, width 水平条的长度
p1 = plt.bar(x=0, bottom=y, height=0.5, width=x, orientation="horizontal")# 展示图形
plt.show()

(3)输出效果:

                                                                                        02.png

2.使用barh()绘制:

具体可参考:官网说明文档

(1)说明

matplotlib.pyplot.barh(ywidthheight=0.8left=None*align='center'**kwargs)

使用barh()时,bottom改为left, 然后宽变高,高变宽。

参数height 设置条形图的宽度,以及条形图之间的间距。当height取值比较小时,条形图比较细,条形图的间距比较宽;取值大时,效果相反。

(2)源代码:

 

"""水平条形图,需要以下属性orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt# 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N)# 绘图 y= y轴, left= 水平条的底部, height 水平条的宽度, width 水平条的长度
p1 = plt.barh(y, left=0, height=0.5, width=x)# 展示图形
plt.show()

(3)输出效果:

(三)复杂的条形图

1.并列条形图:

(1)说明

我们再同一张画布,画两组条形图,并且紧挨着就时并列条形图。

改变x的位置。

(2)源代码:

 

import numpy as np
import matplotlib.pyplot as plt# 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3# 绘图 x 表示 从那里开始
plt.bar(x, Bj, bar_width)
plt.bar(x+bar_width, Sh, bar_width, align="center")# 展示图片
plt.show()

(3)输出效果:

03.png

2.叠加条形图:

(1)说明

两组条形图是处与同一个x处,并且y是连接起来的。

(2)源代码:

 

import numpy as np
import matplotlib.pyplot as plt# 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3# 绘图
plt.bar(x, Bj, bar_width)
plt.bar(x, Sh, bar_width, bottom=Bj)# 展示图片
plt.show()

(3)输出效果:

04.png

3.添加图例于数据标签的条形图:

(1)说明

  1. 对于图例:

先可选属性里添加label=“”,标签

再使用plt.lengd()显示。

  1. 对于数据的标签

使用任意方向的标签来标注,再由x,y数据确定坐标。

  1. tick_label=str,用来显示自定义坐标轴

(2)源代码:

 

"""默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib# 将全局的字体设置为黑体
matplotlib.rcParams['font.family'] = 'SimHei'# 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)
# 添加地名坐标
str1 = ("北京", "上海", "武汉", "深圳", "重庆")# 绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, label="城市指标", tick_label=str1)# 添加数据标签
for a, b in zip(x, y):plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=10)# 添加图例
plt.legend()# 展示图形
plt.show()

(3)输出效果:

05.png

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部