4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图
目录
前言
今天我们学习的是条形图,导入的函数是:
plt.bar() 于 plt.barh
(一)竖值条形图
(1)说明:
原函数定义:
bar(x, height, width=0.8, bottom=None, ***, align='center', data=None, **kwargs)
常见的参数属性
具体参考:官网说明文档
| 参数 | 说明 | 类型 |
|---|---|---|
| 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" |
(2)源代码:
"""
默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 将全局的字体设置为黑体
matplotlib.rcParams['font.family'] = 'SimHei'
# 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)
# 绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, )
# 展示图形
plt.show()
(3)输出效果:

(二)水平条形图
1.使用bar()绘制:
(1)说明
需要把:orientation="horizontal",然后x,与y的数据交换,再添加bottom=x,即可。
(2)源代码:
"""
水平条形图,需要修改以下属性
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()
(3)输出效果:

2.使用barh()绘制:
具体可参考:官网说明文档
(1)说明
使用barh()时,bottom改为left, 然后宽变高,高变宽。
(2)源代码:
"""
水平条形图,需要以下属性
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()
(3)输出效果:
[图片上传失败...(image-c414f2-1552186154190)]
(三)复杂的条形图
1.并列条形图:
(1)说明
我们再同一张画布,画两组条形图,并且紧挨着就时并列条形图。
改变x的位置。
(2)源代码:
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()
(3)输出效果:

2.叠加条形图:
(1)说明
两组条形图是处与同一个x处,并且y是连接起来的。
(2)源代码:
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
# 绘图
plt.bar(x, Bj, bar_width)
plt.bar(x, Sh, bar_width, bottom=Bj)
# 展示图片
plt.show()
(3)输出效果:

3.添加图例于数据标签的条形图:
(1)说明
- 对于图例:
先可选属性里添加label=“”,标签
再使用plt.lengd()显示。
- 对于数据的标签
使用任意方向的标签来标注,再由x,y数据确定坐标。
- tick_label=str,用来显示自定义坐标轴
(2)源代码:
"""
默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 将全局的字体设置为黑体
matplotlib.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()
(3)输出效果:

作者:Mark
日期:2019/02/12 周二
4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图的更多相关文章
- 5.4Python数据处理篇之Sympy系列(四)---微积分
目录 目录 前言 (一)求导数-diff() 1.一阶求导-diff() 2.多阶求导-diff() 3.求偏导数-diff() (二)求积分-integrate() (三)求极限-limit() ( ...
- 3.4Python数据处理篇之Numpy系列(四)---ndarray 数组的运算
目录 目录 (一)数组与标量的运算 1.说明: 2.实例: (二)元素级的运算(一元函数) 1.说明: 2.实例: (三)数组级的运算(二元函数) 1.说明: 2.实例: 目录 1.数组与标量的运算 ...
- 4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置
目录 目录 前言 (一)图例legend 1.默认不带参数的图例 2.添加参数的图例 3.将图例移动到框外 (二)网格grid 1.说明 2.源代码: 3.输出效果 (三)背景axses 1.设置全局 ...
- 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示
目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...
- 4.9Python数据处理篇之Matplotlib系列(九)---子图分布
目录 目录 前言 (一)subplot()方法 ==1.语法说明== ==2.源代码== ==3.输出效果== (二)subplot2grid方法 ==1.语法说明== ==2.源代码== ==3.展 ...
- 4.7Python数据处理篇之Matplotlib系列(七)---matplotlib原理分析
目录 目录 前言 (一)总框架分析 (二)函数式的绘图 1.说明: 2.函数绘图的缺优点 3.绘图类的函数 4.操作类的函数 5.例子: (三)面向对象式的绘图 1.基本概念 2.基本对象 3.面向对 ...
- 4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图
目录 目录 前言 (一)简单的饼状图 (二)添加阴影和突出部分 (三)显示图例和数据标签: 目录 前言 饼状图需要导入的是: plt.pie(x, labels= ) (一)简单的饼状图 (1)说明: ...
- 4.2Python数据处理篇之Matplotlib系列(二)---plt.scatter()散点图
目录 目录 前言 (一)散点图的基础知识 (二)相关性的举例 ==1.正相关== ==1.负相关== ==1.不相关== (三)实战项目以一股票的分析 目录 前言 散点图是用于观测数据的相关性的,有正 ...
- 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制
目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...
随机推荐
- Apollo 8 — ConfigService 异步轮询接口的实现
源码 Apollo 长轮询的实现,是通过客户端轮询 /notifications/v2 接口实现的.具体代码在 com.ctrip.framework.apollo.configservice.con ...
- 关于Vue数组操作
Vue的数组操作的实现代码大致如下: const aryMethods = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse ...
- 使用VSCode如何调试C#控制台程序_1
A-环境安装 https://www.microsoft.com/net/download 下载 .NET Core SDK Installer: https://www.microsoft.com/ ...
- 异步加载图片以及Bitmap相关处理方法
私类: // 异步更新Image private class GetImageTask extends AsyncTask<String, Void, Bitmap> { // 覆写的方法 ...
- EF(EntityFramework)与mysql使用,错误终极解决方案
我昨天写了好多篇跟mysql有关的错误,但是在今天我发现好像所有的问题都是一个原因引起的: 版本问题,我原先使用的是MySql.Data.Entity.EF6(版本号:6.10.5),今天我换成6.9 ...
- UML 概述
UML统一建模语言 1997年OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML).它目标 ...
- [android] 帧布局
/*******************2016年5月3日 更新**************************************/ 知乎:如何理解andriod中的View和framela ...
- python面向对象学习(二)基本语法
目录 1. dir内置函数 2. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 编写第一个面向对象程序 3. 方法中的self参数 3.1 案例改造 -- 给对象添 ...
- 类修饰符为abstract与final
类修饰符为abstract:这个类可以被继承,因此可以通过子类来产生实例. 类修饰符为final:这个类不能被继承. 类修饰符不能同时为abstract.final:编译器会提示: 非法的修饰符组合: ...
- codevs3002 石子归并 3
题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使 ...