Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解
目录
基本用法
多个直方图并列显示
显示直方图上的数值
多个直方图堆叠显示
水平直方图
相较散点图和折线图,柱状图(直方图、条形图)、饼图、箱线图是另外 3 种数据分析常用的图形,主要用于分析数据内部的分布状态或分散状态。
柱状图(直方图、条形图)主要用于查看各分组数据的数量分布,以及各个分组数据之间的数量比较。
Matplotlib 中绘制柱状图(直方图、条形图)的函数为 bar() ,使用语法如下:
atplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)
常用参数及说明:
参数 | 接收值 | 说明 | 默认值 |
left | array | x 轴; | 无 |
height | array | 柱形图的高度,也就是y轴的数值; | 无 |
alpha | 数值 | 柱形图的颜色透明度 ; | 1 |
width | 数值 | 柱形图的宽度; | 0.8 |
color(facecolor) | string | 柱形图填充的颜色; | 随机色 |
edgecolor | string | 图形边缘颜色 | None |
label | string | 解释每个图像代表的含义 | 无 |
linewidth(linewidths / lw) | 数值 | 边缘or线的宽度 | 1 |
bar() 其他参数请参考文档:https://matplotlib.org/api/pyplot_api.html
基本用法
import pandas as pd
import matplotlib.pyplot as plt#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of Histogram',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小#alpha:透明度;width:柱子的宽度;facecolor:柱子填充色;edgecolor:柱子轮廓色;lw:柱子轮廓的宽度;label:图例;
plt.bar(data['时间'],data['收入_Jay'], alpha=0.6,width = 0.8, facecolor = 'deeppink', edgecolor = 'darkblue', lw=1, label='Jay income')plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.show()#显示图像
多个直方图并列显示
通过bar() 中的 width 参数来调节:
import pandas as pd
import matplotlib.pyplot as plt#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of Histogram',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小width_val = 0.4 #若显示 n 个柱状图,则width_val的值需小于1/n ,否则柱形图会有重合#alpha:透明度;width:柱子的宽度;facecolor:柱子填充色;edgecolor:柱子轮廓色;lw:柱子轮廓的宽度;label:图例;
plt.bar(data['时间'],data['收入_Jay'], alpha=0.6,width = width_val, facecolor = 'deeppink', edgecolor = 'deeppink', lw=1, label='Jay income')
plt.bar(data['时间']+width_val,data['收入_JJ'], alpha=0.6,width = width_val, facecolor = 'darkblue', edgecolor = 'darkblue', lw=1, label='JJ income')plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.show()#显示图像
显示直方图上的数值
import pandas as pd
import matplotlib.pyplot as plt#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of Histogram',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小width_val = 0.4 #若显示 n 个柱状图,则width_val的值需小于1/n ,否则柱形图会有重合
#alpha:透明度;width:柱子的宽度;facecolor:柱子填充色;edgecolor:柱子轮廓色;lw:柱子轮廓的宽度;label:图例;
rects_Jay = plt.bar(data['时间'],data['收入_Jay'], alpha=0.6,width = width_val, facecolor = 'deeppink', label='Jay income')
rects_JJ = plt.bar(data['时间']+width_val,data['收入_JJ'], alpha=0.6,width = width_val, facecolor = 'darkblue',label='JJ income')# 添加数据标签 就是矩形上面的数值
def add_labels(rects):for rect in rects:height = rect.get_height()plt.text(rect.get_x() + rect.get_width()/2, height, height, ha='center', va='bottom')rect.set_edgecolor('white')add_labels(rects_Jay)
add_labels(rects_JJ)plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.show()#显示图像
多个直方图堆叠显示
通过bar() 中的 bottom 参数来调节:
import pandas as pd
import matplotlib.pyplot as plt#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of Histogram',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小#通过bottom使得两个柱状图堆叠显示,且没有交叉
#alpha:透明度;width:柱子的宽度;facecolor:柱子填充色;edgecolor:柱子轮廓色;lw:柱子轮廓的宽度;label:图例;
plt.bar(data['时间'],data['收入_Jay'], alpha=0.6,width = width_val, facecolor = 'deeppink', edgecolor = 'deeppink', lw=1, label='Jay income')
plt.bar(data['时间'],data['收入_JJ'], bottom=data['收入_Jay'], alpha=0.6,width = width_val, facecolor = 'darkblue', edgecolor = 'darkblue', lw=1, label='JJ income')plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.show()#显示图像
水平直方图
通过 barh() 函数实现,与 bar() 函数的主要区别是:在 bar() 函数中,width 这一参数代表的是柱子的宽度(胖瘦),而在 barh() 函数中 width 这一参数代表的是横向柱子的长度(长短),在下面代码中,width = data['收入_Jay']。
Matplotlib 中绘制水平柱状图(直方图、条形图)的函数为 barh() ,使用语法如下:
matplotlib.pyplot.
barh
(y, width, height=0.8, left=None, *, align='center', **kwargs)
参数请参考文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.barh.html?highlight=barh#matplotlib.pyplot.barh
import pandas as pd
import matplotlib.pyplot as plt#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of Histogram',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小#alpha:透明度;facecolor:柱子填充色;edgecolor:柱子轮廓色;lw:柱子轮廓的宽度;label:图例;
plt.barh(data['时间'],data['收入_Jay'], alpha=0.6, facecolor = 'deeppink', edgecolor = 'deeppink', label='Jay income')plt.legend(loc=4)#图例展示位置,数字代表第几象限
plt.show()#显示图像
如果还有直方图的其他花样,欢迎留言,我们一起探讨。
Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解相关推荐
- Matplotlib subplot()函数用法详解
Matplotlib subplot()函数用法详解 在使用 Matplotlib 绘图时,我们大多数情况下,需要将一张画布划分为若干个子区域,之后,我们就可以在这些区域上绘制不用的图形.在本节,我们 ...
- python redis用法详解
使用python来操作redis用法详解 1.1 2017.06.22 16:38* 字数 4875 阅读 96923评论 8喜欢 60 1.redis连接 redis提供两个类Redis和Stric ...
- php switch case 判断语句,PHP的switch判断语句的“高级”用法详解,switch详解_PHP教程...
PHP的switch判断语句的"高级"用法详解,switch详解 只所以称为"高级"用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实 ...
- python中递归函数写法_python递归函数用法详解
上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...
- python 折线图 尾部_Matplotlib 折线图plot()所有用法详解
散点图和折线图是数据分析中最常用的两种图形.其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况. Matplotlib 中绘制 ...
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
- python scatter参数详解_Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- subplots用法详解
subplots用法详解 我们经常看到这个函数被用了很多次,尽管这个例子只是试图创建一个图表.还有其他一些优势吗?官方演示subplots() 也用于**f, ax = plt.subplots()* ...
- strace命令用法详解
11-15 Web开发 Dante 7,290 strace命令用法详解 11-15 7,290 调用: strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexp ...
最新文章
- Linux下查找nginx配置文件路径
- Java之替换“\n”符号
- 理解Java对象序列化
- ASP.NET 2.0 学习笔记 1: session 与 script 应用
- Python教你迅速成为蚂蚁森林排行榜第一名
- Java知多少(24)包装类、拆箱和装箱详解
- springboot异常处理方式
- jquery 操作 input显示或者隐藏
- 阿里云物联网平台物模型SDK试用
- 12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误
- jvm参数-verbose:gc和-XX:+PrintGC有区别?
- Centos 7安装和配置 ElasticSearch入门小白
- Mysql如何清空数据库的单表数据 , 所有表数据
- 数据分析五、Apriori 算法之关联分析
- JS实现复制页面文字弹出消息提醒/在sweetalert(swal)弹出窗插件中加入html代码
- matlab实验报告井字棋,有偿井字棋游戏300+
- 申论范文:共同富裕“一定”会考的点
- Typora markdown教程
- Mysql数据库-初识Mysql
- OpenCV每日函数 Subdiv2D类平面细分