python绘制直⾓坐标系_⼩⽩学Python数据分析(16):
Matplotlib(⼀)坐标系
matplotlib中subplot⼈⽣苦短,我⽤ Python
前⽂传送门:
引⾔
各位同学好,本篇⽂章,我们来介绍下使⽤ 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 中的函数从⽽达到直接创建坐标系的⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论