python 堆叠柱状图,Python可视化matplotlib12-垂直|水平|堆积柱形图详解
柱形图(又称柱状图、直方图、条形图)用于各组数据的数量比较,可以简单的分为水平柱形图、垂直柱形图及堆积柱形图。
本文详细介绍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-垂直|水平|堆积柱形图详解相关推荐
- div+css实现水平/垂直/水平垂直居中超详解
目录 一.水平居中 1.块级元素水平居中 方法一:设置margin:0 auto 方法二:设置flex布局 方法三:设置css3的transform 2.行内元素水平居中 行内元素在块级元素中水平居中 ...
- 2021-04-29 Python绘制柱状图之可视化神器Pyecharts
Python绘制柱状图之可视化神器Pyecharts 昨晚写了关于Matplotlib的可视化,今天推荐一个可视化的利器-pyecharts. 前文链接:Python可视化图表生成-Matplotli ...
- python动态图表变化_Python数据可视化 pyecharts实现各种统计图表过程详解
Python数据可视化 pyecharts实现各种统计图表过程详解 发布时间:2020-09-10 04:53:26 来源:脚本之家 阅读:78 1.pyecharts介绍 Echarts是一款由百度 ...
- python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解
python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...
- python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...
对Python中一维向量和一维向量转置相乘的方法详解 在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在pyth ...
- python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解
如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...
- python2.7除法_对python中的float除法和整除法的实例详解
从python2.2开始,便有两种除法运算符:"/"."//".两者最大区别在: python2.2前的版本和python2.2以后3.0以前的版本的默认情况下 ...
- Python Numpy多维数组.sum(axis=0/1/2...) 详解
Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...
- python怎么读文件内容-Python读取文件内容为字符串的方法(多种方法详解)
以下笔记是我在 xue.cn 学习群之数据分析小组所整理分享的心得.相关背景是:我选择中文词频统计案例作为考察大家python基础功掌握程度. 以小见大,下面是2个小技能的具体实战: 如何灵活地处理文 ...
最新文章
- Vue---自定义组件
- shell脚本将本地docker镜像push到阿里云镜像仓库
- 外网访问XAMPP失败 解决方案
- sql去除空值_SQL汇总分析
- java long 溢出_关于溢出:Java乘法运算行为
- Sharpmap AjaxMapControl 分析
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题J Parallel Sort
- mysql 聚集函数 count 使用详解
- BZOJ2728 HNOI2012与非(并查集+数位dp)
- 微信支付v2升级v3注意事项
- 从零开始,学习web前端之HTML5
- DB2数据库学习总结(一)——round函数用法
- php微信上传临时素材,PHP实战:php微信开发之上传临时素材
- 数据质量管理十步流程
- opencv保存视频编码方式
- matlab 三维 作图 坐标轴_matlab三维画图
- 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
- 微信大转盘 【案例源码】提供
- 学生HTML个人网页作业作品 HTML+CSS校园环保(大学生环保网页设计与实现)
- 清除Trojan.PSW.WoWar.qq等木马
热门文章
- Unity5.0 天空盒(CubeMap)
- web的标准网页设计与php课后,web网页设计尺寸规范
- 校招回顾,大疆校招可内推
- [Swift]LeetCode810. 黑板异或游戏 | Chalkboard XOR Game
- 平均电流型LED降压恒流驱动器 常用恒流IC
- Linux系统下操作Oracle数据库
- 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
- 红牛分公司数据part02
- 数学建模之spss软件使用和例题
- 国内外大厂扑向AR-HUD,但抵达“智能汽车终局”仍隔数层纱