柱形图(又称柱状图、直方图、条形图)用于各组数据的数量比较,可以简单的分为水平柱形图、垂直柱形图及堆积柱形图。

本文详细介绍matpltlib中垂直、水平和堆积三种柱形图的绘制。

我的公众号:“pythonic生物人“,持续分享数据科学干货。

版权声明:“pythonic生物人“原创文章,欢迎收藏、点赞、关注三连,转载请标明出处!

写作时间:2020-07-02,有问题可留言或者我的公众号。

目录

1、垂直柱形图

垂直柱形图参数详解

多个垂直柱形图并列显示

柱形图高度显示在柱子上方

堆积柱形图

2、水平柱形图

水平柱形图参数详解

3、参考资料

4、我的公众号

1、垂直柱形图

垂直柱形图参数详解import matplotlib.pyplot as plt

import numpy as np

plt.figure(dpi=100)

labels = ['Jack','Rose','Jimmy']

year_2019=np.arange(1,4)

plt.bar(np.arange(len(labels)),#每个柱子的名称

year_2019,#每个柱子的高度

width=0.4,#柱子宽度,默认宽度: 0.8

bottom=0,#柱子起始位置对应纵坐标,默认从0开始

align='center',#柱子名称位置,默认为'center',可选'edge'

color='pink',#柱子填充色

edgecolor='b',#柱子外框线xian色

linewidth=1,#柱子外框线宽度

tick_label=labels,#自定义每个柱子的名称

yerr=[0.1,0.2,0.3],#添加误差棒

ecolor='red',#误差棒颜色,默认为黑色

capsize=5,#误差棒上下的横线长度

log=False,#y轴坐标取对数

)

多个垂直柱形图并列显示import matplotlib.pyplot as plt

import numpy as np

plt.figure(dpi=100)

labels = ['Jack','Rose','Jimmy']

year_2019=np.arange(1,4)

year_2020=np.arange(1,4)+1

bar_width=0.4

plt.bar(np.arange(len(labels))-bar_width/2,#为了两个柱子一样宽

year_2019,

color='#B5495B',

width=bar_width,

label='year_2019'#图例

)

plt.bar(np.arange(len(labels))+bar_width/2,

year_2020,

color='#2ca02c',

width=bar_width,

label='year_2020'#图例

)

plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称

plt.legend(loc=2)#图例在左边

柱形图高度显示在柱子上方import matplotlib.pyplot as plt

import numpy as np

plt.figure(dpi=100)

labels = ['Jack','Rose','Jimmy']

year_2019=np.arange(1,4)

year_2020=np.arange(1,4)+1

bar_width=0.4

bar1 = plt.bar(np.arange(len(labels))-bar_width/2,#为了两个柱子一样宽

year_2019,

color='#B5495B',

width=bar_width,

label='year_2019'#图例

)

bar2 = plt.bar(np.arange(len(labels))+bar_width/2,

year_2020,

color='#2ca02c',

width=bar_width,

label='year_2020'#图例

)

plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称

plt.legend(loc=2)#图例放置左边

def autolabel(rects):

"""柱子上添加柱子的高度"""

for rect in rects:

height = rect.get_height()

plt.annotate('{}'.format(height),

xy=(rect.get_x() + rect.get_width() / 2, height),

xytext=(0, 0.8),#柱子上方距离

textcoords="offset points",

ha='center', va='bottom')

autolabel(bar1)

autolabel(bar2)

plt.tight_layout()

plt.show()

堆积柱形图import matplotlib.pyplot as plt

import numpy as np

plt.figure(dpi=100)

labels = ['Jack','Rose','Jimmy']

year_2019=np.arange(1,4)

year_2020=np.arange(1,4)+1

bar_width=0.4

plt.bar(np.arange(len(labels)),

year_2019,

color='#B5495B',

width=bar_width,

label='year_2019'

)

plt.bar(np.arange(len(labels)),

year_2020,

color='#2ca02c',

width=bar_width,

bottom=year_2019,#上面柱子起始高度设置为第一个柱子的结束位置,默认从0开始

label='year_2020'#图例

)

plt.xticks(np.arange(0, 3, step=1),labels,rotation=45)#定义柱子名称

plt.legend(loc=2)#图例在左边

2、水平柱形图

水平柱形图参数详解

注意比较和垂直柱形图中参数的细微差别

import matplotlib.pyplot as plt

import numpy as np

plt.figure(dpi=100)

labels = ['Jack','Rose','Jimmy']

year_2019=np.arange(1,4)

plt.barh(np.arange(len(labels)),#每个柱子的名称

width=year_2019,#柱子高度

height=0.8,#柱子宽度,默认为0.8

left=1,#柱子底部位置对应x轴的横坐标,类似bar()中的bottom

align='center',#柱子名称位置,默认为'center',可选'edge'

color='pink',#柱子填充色

edgecolor='b',#柱子外框线xian色

linewidth=1,#柱子外框线宽度

tick_label=labels,#自定义每个柱子的名称

xerr=[0.1,0.2,0.3],#添加误差棒

ecolor='red',#误差棒颜色,默认为黑色

capsize=5,#误差棒上下的横线长度

log=False,#y轴坐标取对数

)

3、参考资料

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

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.barh.html#matplotlib.pyplot.barh

4、我的公众号

"pythonic生物人",持续分享数据科学和生物信息干货,欢迎来看看。

python 堆叠柱状图,Python可视化matplotlib12-垂直|水平|堆积柱形图详解相关推荐

  1. div+css实现水平/垂直/水平垂直居中超详解

    目录 一.水平居中 1.块级元素水平居中 方法一:设置margin:0 auto 方法二:设置flex布局 方法三:设置css3的transform 2.行内元素水平居中 行内元素在块级元素中水平居中 ...

  2. 2021-04-29 Python绘制柱状图之可视化神器Pyecharts

    Python绘制柱状图之可视化神器Pyecharts 昨晚写了关于Matplotlib的可视化,今天推荐一个可视化的利器-pyecharts. 前文链接:Python可视化图表生成-Matplotli ...

  3. python动态图表变化_Python数据可视化 pyecharts实现各种统计图表过程详解

    Python数据可视化 pyecharts实现各种统计图表过程详解 发布时间:2020-09-10 04:53:26 来源:脚本之家 阅读:78 1.pyecharts介绍 Echarts是一款由百度 ...

  4. python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解

    python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...

  5. python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...

    对Python中一维向量和一维向量转置相乘的方法详解 在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在pyth ...

  6. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  7. python2.7除法_对python中的float除法和整除法的实例详解

    从python2.2开始,便有两种除法运算符:"/"."//".两者最大区别在: python2.2前的版本和python2.2以后3.0以前的版本的默认情况下 ...

  8. Python Numpy多维数组.sum(axis=0/1/2...) 详解

    Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...

  9. python怎么读文件内容-Python读取文件内容为字符串的方法(多种方法详解)

    以下笔记是我在 xue.cn 学习群之数据分析小组所整理分享的心得.相关背景是:我选择中文词频统计案例作为考察大家python基础功掌握程度. 以小见大,下面是2个小技能的具体实战: 如何灵活地处理文 ...

最新文章

  1. Vue---自定义组件
  2. shell脚本将本地docker镜像push到阿里云镜像仓库
  3. 外网访问XAMPP失败 解决方案
  4. sql去除空值_SQL汇总分析
  5. java long 溢出_关于溢出:Java乘法运算行为
  6. Sharpmap AjaxMapControl 分析
  7. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题J Parallel Sort
  8. mysql 聚集函数 count 使用详解
  9. BZOJ2728 HNOI2012与非(并查集+数位dp)
  10. 微信支付v2升级v3注意事项
  11. 从零开始,学习web前端之HTML5
  12. DB2数据库学习总结(一)——round函数用法
  13. php微信上传临时素材,PHP实战:php微信开发之上传临时素材
  14. 数据质量管理十步流程
  15. opencv保存视频编码方式
  16. matlab 三维 作图 坐标轴_matlab三维画图
  17. 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
  18. 微信大转盘 【案例源码】提供
  19. 学生HTML个人网页作业作品 HTML+CSS校园环保(大学生环保网页设计与实现)
  20. 清除Trojan.PSW.WoWar.qq等木马

热门文章

  1. Unity5.0 天空盒(CubeMap)
  2. web的标准网页设计与php课后,web网页设计尺寸规范
  3. 校招回顾,大疆校招可内推
  4. [Swift]LeetCode810. 黑板异或游戏 | Chalkboard XOR Game
  5. 平均电流型LED降压恒流驱动器 常用恒流IC
  6. Linux系统下操作Oracle数据库
  7. 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
  8. 红牛分公司数据part02
  9. 数学建模之spss软件使用和例题
  10. 国内外大厂扑向AR-HUD,但抵达“智能汽车终局”仍隔数层纱