目录

前言

今天我们学习的是条形图,导入的函数是:

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)说明

  1. 对于图例:

先可选属性里添加label=“”,标签

再使用plt.lengd()显示。

  1. 对于数据的标签

使用任意方向的标签来标注,再由x,y数据确定坐标。

  1. 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条形图的更多相关文章

  1. 5.4Python数据处理篇之Sympy系列(四)---微积分

    目录 目录 前言 (一)求导数-diff() 1.一阶求导-diff() 2.多阶求导-diff() 3.求偏导数-diff() (二)求积分-integrate() (三)求极限-limit() ( ...

  2. 3.4Python数据处理篇之Numpy系列(四)---ndarray 数组的运算

    目录 目录 (一)数组与标量的运算 1.说明: 2.实例: (二)元素级的运算(一元函数) 1.说明: 2.实例: (三)数组级的运算(二元函数) 1.说明: 2.实例: 目录 1.数组与标量的运算 ...

  3. 4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置

    目录 目录 前言 (一)图例legend 1.默认不带参数的图例 2.添加参数的图例 3.将图例移动到框外 (二)网格grid 1.说明 2.源代码: 3.输出效果 (三)背景axses 1.设置全局 ...

  4. 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示

    目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...

  5. 4.9Python数据处理篇之Matplotlib系列(九)---子图分布

    目录 目录 前言 (一)subplot()方法 ==1.语法说明== ==2.源代码== ==3.输出效果== (二)subplot2grid方法 ==1.语法说明== ==2.源代码== ==3.展 ...

  6. 4.7Python数据处理篇之Matplotlib系列(七)---matplotlib原理分析

    目录 目录 前言 (一)总框架分析 (二)函数式的绘图 1.说明: 2.函数绘图的缺优点 3.绘图类的函数 4.操作类的函数 5.例子: (三)面向对象式的绘图 1.基本概念 2.基本对象 3.面向对 ...

  7. 4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图

    目录 目录 前言 (一)简单的饼状图 (二)添加阴影和突出部分 (三)显示图例和数据标签: 目录 前言 饼状图需要导入的是: plt.pie(x, labels= ) (一)简单的饼状图 (1)说明: ...

  8. 4.2Python数据处理篇之Matplotlib系列(二)---plt.scatter()散点图

    目录 目录 前言 (一)散点图的基础知识 (二)相关性的举例 ==1.正相关== ==1.负相关== ==1.不相关== (三)实战项目以一股票的分析 目录 前言 散点图是用于观测数据的相关性的,有正 ...

  9. 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制

    目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...

随机推荐

  1. python属性管理(1):基础

    管理属性的几种方式 在python中访问.设置.删除对象属性的时候,有以下几种方式: 使用内置函数getattr().setattr()和delattr() 自己编写getter().setter() ...

  2. advanced installer重新打包教程

    一.简介 本次利用Advanced Installer软件里的Repackager重封装工具进行测试制作MSI安装包,还开可以利用Advanced Installerr制作MSI安装包 原理为执行两次 ...

  3. Bootstrap-table使用总结(整合版)

    一.什么是Bootstrap-table? 在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这 ...

  4. shell编程基础(七): 处理文件命令sed与awk

    一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...

  5. NET(C#)接入Dubbo服务,Zookeeper作为Dubbo服务的注册中心,实现thrift协议访问接口(3)

    如何引用Zookeeper.dll 下载最新版本的Zookeeper 地址:http://mirrors.cnnic.cn/apache/zookeeper/ 没有.NET代码 dotnet代码下载 ...

  6. [转]Angular引入第三方库

    本文转自: https://blog.csdn.net/yuzhiqiang_1993/article/details/71215232 版权声明:本文为博主原创文章,转载请注明地址.如果文中有什么纰 ...

  7. MyBatis学习总结(一)——ORM概要与MyBatis快速起步

    程序员应该将核心关注点放在业务上,而不应该将时间过多的浪费在CRUD中,多数的ORM框架都把增加.修改与删除做得非常不错了,然后数据库中查询无疑是使用频次最高.复杂度大.与性能密切相关的操作,我们希望 ...

  8. ASP.NET Core入门

    一.搭建开发环境 在Windows平台下,开发.NET Core 程序需要安装如下内容: 1. .NET Core runtime 2. Visual Studio 2015 with Update ...

  9. C#窗体加载和控件加载不同步导致控件闪烁

    窗体加载和控件加载不同步导致的控件闪烁现象:// 代码块加在父窗体中的任意位置,解决窗体加载和控件加载不同步导致的控件闪烁问题        protected override CreatePara ...

  10. canvas-8searchLight2.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...