python画图|直方图绘制教程

前述学习过程中,我们已经非常熟悉,使用ax.plot和plt.plot画出来的图形都是实线图。学习可参考链接(二选一):西猫雷婶-CSDN博客https://blog.csdn.net/weixin_44855046/category_12768139.html?spm=1001.2014.3001.5482

很多时候,我们会用到直方图来表达数据特征。本次我们就一起来学习一下。

进入matplotlib官网,直接搜索bar会有以下结果:

https://matplotlib.org/stable/search.html?q=bar

图1

在这里,我们选择pyplot.bar展开学习。

点开后页面如链接和图2所示:

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.bar.html#matplotlib.pyplot.bar

图2

其中的内容对图2进行了充分解释,这里做简要说明:

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

这里所适用的假定是:直方图位于XOY直角坐标系,然后有:

 x:画直方图的x轴;

height:直方图高度;

width:直方图间距;

bottom:直方图底部坐标,即底部对应y轴值;

align:直方图和坐标轴对齐元素,“center”就是指中心对齐,比如要求直方图和x=5对齐,x=5正对直方图中部;

data:可接受为字符的数据组,不用管,很少使用;

**kwargs:keyword argument,一些其他属性的补充,也不用在意。

然后我们继续下拉官网页面,进入Examples using matplotlib.pyplot.bar中的第一个实例:

图3

进入后链接和页面如下:

Bar color demo — Matplotlib 3.9.2 documentation

图4

把其中的代码复制出来:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

fruits = ['apple', 'blueberry', 'cherry', 'orange']
counts = [40, 100, 30, 55]
bar_labels = ['red', 'blue', '_red', 'orange']
bar_colors = ['tab:red', 'tab:blue', 'tab:red', 'tab:orange']

ax.bar(fruits, counts, label=bar_labels, color=bar_colors)

ax.set_ylabel('fruit supply')
ax.set_title('Fruit supply by kind and color')
ax.legend(title='Fruit color')

plt.show()

这里发现它出现的是ax.bar。这个教程甚是顽皮,在pyplot.bar页面下举例ax.bar。

好在ax.bar和pyplot.bar没有显著的区别,我对代码进行了注释:

import matplotlib.pyplot as plt #引入matplotlib函数

fig, ax = plt.subplots() #定义ax坐标轴,画一个图

fruits = ['apple', 'blueberry', 'cherry', 'orange'] #定义字符串变量
counts = [40, 100, 30, 55] #定义数组
bar_labels = ['red', 'blue', '_red', 'orange'] #定义直方图标签
bar_colors = ['tab:red', 'tab:blue', 'tab:red', 'tab:orange'] #定义直方图颜色

ax.bar(fruits, counts, label=bar_labels, color=bar_colors) #ax轴上画直方图,以字符串为横坐标,以数组为纵坐标,并以不同颜色区分

ax.set_ylabel('fruit supply') #设置y坐标为fruit supply
ax.set_title('Fruit supply by kind and color') #设置图标题为Fruit supply by kind and color'
ax.legend(title='Fruit color') #设置图例名为Fruit color

plt.show() #输出图形

最后的输出图为:

图6

综上所述: 使用ax.bar和pyplot.bar均可以直接输出直方图,并支持自定义图形属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值