人生苦短,我用 Python

前文传送门:

小白学 Python 数据分析(1):数据分析基础

小白学 Python 数据分析(2):Pandas (一)概述

小白学 Python 数据分析(3):Pandas (二)数据结构 Series

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

小白学 Python 数据分析(7):Pandas (六)数据导入

小白学 Python 数据分析(8):Pandas (七)数据预处理

小白学 Python 数据分析(9):Pandas (八)数据预处理(2)

小白学 Python 数据分析(10):Pandas (九)数据运算

小白学 Python 数据分析(11):Pandas (十)数据分组

小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)

小白学 Python 数据分析(13):Pandas (十二)数据表拼接

小白学 Python 数据分析(14):Pandas (十三)数据导出

小白学 Python 数据分析(15):数据可视化概述

引言

各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系。

回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线图直方图之类的统计图表,其中第一步就是建立直角坐标系。

翻出老课本,帮助各位同学回忆一下当年的数学课,直角坐标系就是下面这个:

直角坐标系不仅能存在于平面中,还有立体的:

当然,本文的只介绍平面直角坐标系如何构建,至于立体的,我们后面再聊。

画布

在构建平面直角坐标系之前,我们需要先创建一个画布。

What?画布是啥?

emmmmmmmmmmm,这就类似于我们在电脑上画画一样,需要打开画图软件,创建一个空白的白板,这个白板就是我们后续画图的地方。

使用 Matplotlib 创建画布的代码如下,首先需要导入 Matplotlib 的库:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(6, 6))

上面这段代码我们就完成了一个宽和高都为 6 的画布的创建。

创建直角坐标系

创建直角坐标系有多很多种方法,这里我们一种一种来介绍:

add_subplot

首先,我们使用 add_subplot 函数来创建直角坐标系,我们就在刚才创建的那个画布上创建 1 X 1 个直角坐标系:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(6, 6))

fig.add_subplot(1,1,1)

plt.show()

我们得到的结果如下:

我们再创建 2 X 2 个直角坐标系:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(6, 6))

ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4) plt.show()

结果如下图:

这里有一点需要说明一下,这里参数可以省略其中的 , 逗号,如下:

ax1 = fig.add_subplot(221)

参数的含义为创建 2 X 2 网格第一子图。

subplot2grid

在使用 subplot2grid 函数创建直角坐标系的时候,不需要事先创建画布,可以直接使用创建,比如我们下面创建一个很简单的折线图和柱状图:

import matplotlib.pyplot as plt
import numpy as np x = np.arange(4)
y = np.arange(4) # 绘制折线图
plt.subplot2grid((2,2),(0,0))
plt.plot(x, y) # 绘制柱状图
plt.subplot2grid((2,2),(0,1))
plt.bar(x, y) plt.show()

结果如下:

subplot

同上面的 subplot2grid 一样,我们同样可以通过 subplot 来绘制直角坐标系,比如我们拿上面的例子再使用 subplot 写一遍:

import matplotlib.pyplot as plt
import numpy as np x = np.arange(4)
y = np.arange(4) # 绘制折线图
plt.subplot(221)
plt.plot(x, y) # 绘制柱状图
plt.subplot(222)
plt.bar(x, y) plt.show()

结果还是和上面一样的,小编不再贴了。

上面这个示例的含义是将图标区域分为 2 X 2 共计 4 个区域,在第一个区域上创建折线图,在第二个区域上创建柱状图。

subplots

subplots 看起来和 subplot 很像,实际上也是非常像的,它和 subplot 的不同之处是 subplot 一次只能返回一个坐标系,而 subplots 一次可以返回多个坐标系。

我们接着使用 subplots 完成前面的示例:

import matplotlib.pyplot as plt
import numpy as np x = np.arange(4)
y = np.arange(4) fig, axes = plt.subplots(2, 2)
# 绘制折线图
axes[0,0].plot(x,y)
# 绘制柱状图
axes[0,1].bar(x,y)
plt.show()

结果如下:

可以看到,我们虽然只使用到了两个坐标,但实际上 subplots 还是会帮我们将 4 个坐标全都创建出来。

小结

前面介绍的集中直角坐标系的创建方法并无本质上的区别,只有第一种 add_subplot 在使用的时候是需要先创建一个画布的,后面三种都是直接调用 Matplotlib 中的函数从而达到直接创建坐标系的方法。

小白学 Python 数据分析(16):Matplotlib(一)坐标系的更多相关文章

  1. 小白学 Python 数据分析(17):Matplotlib(二)基础操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  2. 小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  3. 小白学 Python 数据分析(19):Matplotlib(四)常用图表(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  4. 小白学 Python 数据分析(20):pyecharts 概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  5. 小白学 Python 数据分析(21):pyecharts 好玩的图表(系列终篇)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  6. 小白学 Python 数据分析(2):Pandas (一)概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 概览 首先还是几个官方链接放一下: Pandas 官网:https://pandas.pydata.or ...

  7. 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  8. 小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. 小白学 Python 数据分析(15):数据可视化概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

随机推荐

  1. android greendao的外部封装不太友好。

    https://github.com/greenrobot/greenDAO 下载下官网的示例,有完整的封装版本,但自已封装是碰到很多问题. 因greenDao的Master和Session中很多方法 ...

  2. Zabbix调用外部脚本发送邮件:python编写脚本

    Zabbix调用外部脚本发送邮件的时候,会在命令行传入两个参数,第一个参数就是要发送给哪个邮箱地址,第二个参数就是邮件信息,为了保证可以传入多个参数,所以假设有多个参数传入 #!/usr/bin/en ...

  3. POJ 2728 二分+最小生成树

    题意:给n个点,可以将每个点的x,y的欧几里得距离(就是坐标系里两点距离公式)看作距离,z的差值即为费用差,求的是所有最小生成树中的min(边费用和/边距离和). 思路:其实挑战P143有类似的列题, ...

  4. Flask admin Flask login 整合模板

    项目地址: https://github.com/WES6/supflask Flask admin 官方文档: https://flask-admin.readthedocs.io/en/lates ...

  5. Hexo搭建个人博客(一)— 前期准备

    最近几个月自学python的过程中,搜索爬虫资料的时候关注了xlzd的博客,为我开启了一片新世界,之后慢慢收藏了各方高人的博客.搭建一个自己博客的萌芽也悄然种下,也许是命运使然,在逛知乎的时候偶然间看 ...

  6. Hadoop2.7搭建

    Hadoop最底部是 Hadoop Distributed File System(HDFS),它存储Hadoop集群中所有存储节点上的文件.HDFS(对于本文)的上一层是MapReduce 引擎,该 ...

  7. C++扬帆远航——13(个人所得税计算器)

    /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:shui.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  8. CentOS 7 国内源配置

    CentOS 7 国内源配置 1. 备份自带源 # 首先要确认你有 wget 命令, 并且连着网 # cd /etc/yum.repos.d/ # mkdir repo # mv *.repo rep ...

  9. PyQt5之QtMultimedia模块音乐播放没声音已解决

    昨天用PyQt5的QtMultimedia模块播放音乐时,单独使用可播放,放代码里结合使用死的播放不了.以下是测试demo可播放代码: # -*- coding: utf-8 -*- # Nola f ...

  10. SQL基本操作总结

    1.SQL简介 结构化查询语言 (层次模型,网状模型,关系模型) 关系模型是目前的主流 (Oralce,mysql mssql ) SQL标准:ANSI (1992 1997 2002 ISO) 方言 ...