人生苦短,我用 Pythonpython
前文传送门:数据结构
小白学 Python 数据分析(2):Pandas (一)概述spa
小白学 Python 数据分析(3):Pandas (二)数据结构 Series3d
小白学 Python 数据分析(4):Pandas (三)数据结构 DataFramecode
小白学 Python 数据分析(5):Pandas (四)基础操做(1)查看数据cdn
小白学 Python 数据分析(6):Pandas (五)基础操做(2)数据选择blog
小白学 Python 数据分析(7):Pandas (六)数据导入get
小白学 Python 数据分析(8):Pandas (七)数据预处理数据分析
小白学 Python 数据分析(9):Pandas (八)数据预处理(2)
小白学 Python 数据分析(10):Pandas (九)数据运算
小白学 Python 数据分析(11):Pandas (十)数据分组
小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)
小白学 Python 数据分析(13):Pandas (十二)数据表拼接
小白学 Python 数据分析(14):Pandas (十三)数据导出
各位同窗好,本篇文章,咱们来介绍下使用 Matplotlib 时如何创建坐标系。
回想一下之前咱们在接受九年义务教育毒打上数学课的时候,应该都画过折线图直方图之类的统计图表,其中第一步就是创建直角坐标系。
翻出老课本,帮助各位同窗回忆一下当年的数学课,直角坐标系就是下面这个:
直角坐标系不只能存在于平面中,还有立体的:
固然,本文的只介绍平面直角坐标系如何构建,至于立体的,咱们后面再聊。
在构建平面直角坐标系以前,咱们须要先建立一个画布。
What?画布是啥?
emmmmmmmmmmm,这就相似于咱们在电脑上画画同样,须要打开画图软件,建立一个空白的白板,这个白板就是咱们后续画图的地方。
使用 Matplotlib 建立画布的代码以下,首先须要导入 Matplotlib 的库:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
复制代码
上面这段代码咱们就完成了一个宽和高都为 6 的画布的建立。
建立直角坐标系有多不少种方法,这里咱们一种一种来介绍:
首先,咱们使用 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
函数建立直角坐标系的时候,不须要事先建立画布,能够直接使用建立,好比咱们下面建立一个很简单的折线图和柱状图:
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()
复制代码
结果以下:
同上面的 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
看起来和 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 中的函数从而达到直接建立坐标系的方法。