目录

基本用法

多个直方图并列显示

显示直方图上的数值

多个直方图堆叠显示

水平直方图

相较散点图和折线图,柱状图(直方图、条形图)、饼图、箱线图是另外 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(ywidthheight=0.8left=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() 所有用法详解相关推荐

  1. Matplotlib subplot()函数用法详解

    Matplotlib subplot()函数用法详解 在使用 Matplotlib 绘图时,我们大多数情况下,需要将一张画布划分为若干个子区域,之后,我们就可以在这些区域上绘制不用的图形.在本节,我们 ...

  2. python redis用法详解

    使用python来操作redis用法详解 1.1 2017.06.22 16:38* 字数 4875 阅读 96923评论 8喜欢 60 1.redis连接 redis提供两个类Redis和Stric ...

  3. php switch case 判断语句,PHP的switch判断语句的“高级”用法详解,switch详解_PHP教程...

    PHP的switch判断语句的"高级"用法详解,switch详解 只所以称为"高级"用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实 ...

  4. python中递归函数写法_python递归函数用法详解

    上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...

  5. python 折线图 尾部_Matplotlib 折线图plot()所有用法详解

    散点图和折线图是数据分析中最常用的两种图形.其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况. Matplotlib 中绘制 ...

  6. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  7. python scatter参数详解_Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

  8. subplots用法详解

    subplots用法详解 我们经常看到这个函数被用了很多次,尽管这个例子只是试图创建一个图表.还有其他一些优势吗?官方演示subplots() 也用于**f, ax = plt.subplots()* ...

  9. strace命令用法详解

    11-15 Web开发 Dante 7,290 strace命令用法详解 11-15 7,290 调用: strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexp ...

最新文章

  1. Linux下查找nginx配置文件路径
  2. Java之替换“\n”符号
  3. 理解Java对象序列化
  4. ASP.NET 2.0 学习笔记 1: session 与 script 应用
  5. Python教你迅速成为蚂蚁森林排行榜第一名
  6. Java知多少(24)包装类、拆箱和装箱详解
  7. springboot异常处理方式
  8. jquery 操作 input显示或者隐藏
  9. 阿里云物联网平台物模型SDK试用
  10. 12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误
  11. jvm参数-verbose:gc和-XX:+PrintGC有区别?
  12. Centos 7安装和配置 ElasticSearch入门小白
  13. Mysql如何清空数据库的单表数据 , 所有表数据
  14. 数据分析五、Apriori 算法之关联分析
  15. JS实现复制页面文字弹出消息提醒/在sweetalert(swal)弹出窗插件中加入html代码
  16. matlab实验报告井字棋,有偿井字棋游戏300+
  17. 申论范文:共同富裕“一定”会考的点
  18. Typora markdown教程
  19. Mysql数据库-初识Mysql
  20. OpenCV每日函数 Subdiv2D类平面细分

热门文章

  1. Sublime text3 代码格式化插件vue
  2. 上Google Adsense个人的一点体验
  3. 【LeetCode】053. Maximum Subarray
  4. POJ 3694 Network
  5. 母版中menu控件上传后出现脚本错误
  6. 方向盘开极品飞车9很Hapyy
  7. WinForm的App.config
  8. VS2017动态链接库(.dll)的生成与使用
  9. 为了兴趣爱好,我该选嵌入式么?
  10. STM32F0单片机快速入门八 聊聊 Coolie DMA