Matplotlib系列(四)--plt.bar与plt.barh条形图
(一)竖条条形图
参数说明
| 参数 | 说明 | 类型 |
| x | x坐标 | int,float |
| height | 条形的高度 | int,float |
| width | 线条的宽度 | 0~1,默认是0.8 |
| botton | 条形的起始位置 | 也就是y轴的起始坐标 |
| align | 条形的中心位置 | “center”,"lege"边缘 |
| color | 条形的颜色 | “r”,“b”,“g”,“#123465",默认的颜色是“b” |
| edgecolor | 边框的颜色 | 同上 |
| linewidth | 边框的宽度 | 像素,默认无,int |
| tick_label | 下标的标签 | 可以是元组类型的字符组合 |
| log | y轴使用科学计算法表示 | bool |
| orientation | 是竖直条还是水平条 | 竖直:"vertical",水平条:"horizontal" |
颜色的参数说明
| 字符 | 颜色 |
| 'b' | blue |
| 'g' | green |
| 'r' | red |
| 'c' | cyan 青色 |
| 'm' | magenta 平红 |
| 'y' | yellow |
| 'k' | black |
| 'w' | white |
import numpy as np
import matplotlib.pyplot as plt # 将全局的字体设置为黑体
plt.rcParams['font.family'] = 'SimHei' # 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N) # 绘图 x x轴, height 高度, 默认:color="blue", width=0.2 线条的宽度 默认0.8
p1 = plt.bar(x, height=y, width=0.5) # 展示图形
plt.show()
输出效果:

(二) 水平条形图
1.使用bar绘制:注意:需要把:orientation="horizontal",然后x,与y的数据交换,再添加bottom=x,即可。
"""
水平条形图,需要修改以下属性
orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt # 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N) # 绘图 x= 起始位置, bottom= 水平条的底部(左侧), y轴, height 水平条的宽度, width 水平条的长度
p1 = plt.bar(x=0, bottom=y, height=0.5, width=x, orientation="horizontal") # 展示图形
plt.show()

(2)使用barh()时,bottom改为left, 然后宽变高,高变宽。
"""
水平条形图,需要以下属性
orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt # 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N) # 绘图 y= y轴, left= 水平条的底部, height 水平条的宽度, width 水平条的长度
p1 = plt.barh(y, left=0, height=0.5, width=x) # 展示图形
plt.show()

(三)、复杂一些的条形图
1.并列的条形图
注意事项:我们再同一张画布,画两组条形图,并且紧挨着就时并列条形图。改变x的位置。
import numpy as np
import matplotlib.pyplot as plt # 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3 # 绘图 x 表示 从那里开始
plt.bar(x, Bj, bar_width)
plt.bar(x+bar_width, Sh, bar_width, align="center") # 展示图片
plt.show()
(2) 添加图例信息
- 对于图例:先可选属性里添加label=“”,标签再使用plt.lengd()显示。
- 对于数据的标签使用任意方向的标签来标注,再由x,y数据确定坐标。
- tick_label=str,用来显示自定义坐标轴
"""
默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt # 将全局的字体设置为黑体
plt.rcParams['font.family'] = 'SimHei' # 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)
# 添加地名坐标
str1 = ("北京", "上海", "武汉", "深圳", "重庆") # 绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, label="城市指标", tick_label=str1) # 添加数据标签
for a, b in zip(x, y):
plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=10) # 添加图例
plt.legend() # 展示图形
plt.show()

Matplotlib系列(四)--plt.bar与plt.barh条形图的更多相关文章
- 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图
目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...
- 4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图
目录 目录 前言 (一)简单的饼状图 (二)添加阴影和突出部分 (三)显示图例和数据标签: 目录 前言 饼状图需要导入的是: plt.pie(x, labels= ) (一)简单的饼状图 (1)说明: ...
- 4.2Python数据处理篇之Matplotlib系列(二)---plt.scatter()散点图
目录 目录 前言 (一)散点图的基础知识 (二)相关性的举例 ==1.正相关== ==1.负相关== ==1.不相关== (三)实战项目以一股票的分析 目录 前言 散点图是用于观测数据的相关性的,有正 ...
- Difference between plt.draw() and plt.show() in matplotlib
Difference between plt.draw() and plt.show() in matplotlib down voteaccepted plt.show() will display ...
- 4.7Python数据处理篇之Matplotlib系列(七)---matplotlib原理分析
目录 目录 前言 (一)总框架分析 (二)函数式的绘图 1.说明: 2.函数绘图的缺优点 3.绘图类的函数 4.操作类的函数 5.例子: (三)面向对象式的绘图 1.基本概念 2.基本对象 3.面向对 ...
- Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]
Paddle Graph Learning (PGL)图学习之图游走类模型[系列四] 更多详情参考:Paddle Graph Learning 图学习之图游走类模型[系列四] https://aist ...
- tkinter内嵌Matplotlib系列(二)之函数曲线绘制
目录 目录 前言 (一)对matplotlib画布的封装: (二)思路分析: 1.需求说明: 2.框架的设置: 3.文件说明: (三)各文件的源代码 1.main.py 2.widget.py 3.f ...
- python Matplotlib 系列教程(三)——绘制直方图和条形图
在本章节我们将学习如何绘制条形图和直方图 条形图与直方图的区别:首先,条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的: 直方图是用面积表示各组频数的多少,矩形的高度表示每一组的 ...
- matplotlib系列——条形图
import matplotlib.pyplot as plt import numpy as np import matplotlib x = ["战狼2","激情8& ...
随机推荐
- 剑指offer--day07
1.1 题目:反转链表:输入一个链表,反转链表后,输出新链表的表头. 1.2 思路:这道题,我们要做到的是反转链表,我们的思路是将前一个节点与后一个节点断开,然后让后一个节点指向前一个节点,这个过程就 ...
- DevOps的前世今生
From今日头条:https://www.toutiao.com/a6534660729453150723/?tt_from=weixin&utm_campaign=client_share& ...
- 关于微信授权和unionid 的获取思路。
1.首先根据appid 获取到预授权码的code string Appid = "******";//appid.由于网页授权与js-jdk使用不同微信,所以暂时独立于此处. st ...
- JAVA Error:The project was not built since its build path is incomplete. Cannot find the class file for java.util.Map$Entry.....
今天,学习Netty框架时遇到error:Description Resource Path Location Type:The project was not built since its bui ...
- hdu-1045.fire net(缩点 + 二分匹配)
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- [2019南京网络赛D题]Robots
题目链接 2019.9.2更新 第二天睡醒想了想发现好像搜一遍就可以过,赛时写的花里胡哨的还错了,太菜了QAQ #include<bits/stdc++.h> using namespac ...
- [51Nod2558] 选址
link 考虑二分答案 $F$ ,那么现在的问题变成是否对于覆盖并有交集. 考虑边 $(u,v)$ ,若覆盖并在 $(u,v,w)$ 线段中,设点 $i$ 走到 $u$ 号后还能走 $F1$ , 走到 ...
- C#设计模式:代理模式(Proxy Pattern)
一,什么是C#设计模式? 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问 二,代码如下: using System; using System.Collectio ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- ASE Beta Sprint - backend scrum 1
本次scrum于2019.12.2与前端组和模型组一起在sky garden进行,持续50分钟. 参与人: Xin Kang, Zhikai Chen, Lihao Ran, Hao Wang 请假: ...