Python数据处理从零开始----第四章(可视化)(7)(多图
2018-11-13 本文已影响120人
柳叶刀与小鼠标
目录
Python数据处理从零开始----第四章(可视化)①
Python数据处理从零开始----第四章(可视化)②
Python数据处理从零开始----第四章(可视化)③
Python数据处理从零开始----第四章(可视化)④
Python数据处理从零开始----第四章(可视化)⑤(韦恩图)
Python数据处理从零开始----第四章(可视化)⑥(画布设置)
Python数据处理从零开始----第四章(可视化)⑦(多图合并)
=========================================================
正文
现实工作中,往往需要将多个图形组合到一个图框中。这里讲展示如何将多种图形汇总到一个图表中。
-
相似均匀图的合并
使用plt.subplot来创建小图.
plt.subplot(2,2,1)表示将整个图像窗口分为2行2列, 当前位置为1. 使用plt.plot([0,1],[0,1])在第1个位置创建一个小图.
plt.subplot(2,2,2)表示将整个图像窗口分为2行2列, 当前位置为2. 使用plt.plot([0,1],[0,2])在第2个位置创建一个小图.
plt.subplot(2,2,3)表示将整个图像窗口分为2行2列,当前位置为3. plt.subplot(2,2,3)可以简写成plt.subplot(223), matplotlib同样可以识别. 使用plt.plot([0,1],[0,3])在第3个位置创建一个小图.
plt.subplot(224)表示将整个图像窗口分为2行2列, 当前位置为4. 使用plt.plot([0,1],[0,4])在第4个位置创建一个小图.
%clear
%reset -f
# In[*]
import matplotlib.pyplot as plt
plt.figure()
# In[*]
plt.subplot(2, 2, 1)
plt.plot([0, 1], [0, 1])
plt.subplot(222)
plt.plot([0, 1], [0, 2])
plt.subplot(223)
plt.plot([0, 1], [0, 3])
plt.subplot(224)
plt.plot([0, 1], [0, 4])
plt.tight_layout()
![](https://img.haomeiwen.com/i9218360/834f6f1504e2380b.png)
-
相似不均匀图的合并
# In[*]
plt.subplot(2,1,1)
plt.plot([0,1],[0,1])
plt.subplot(2,3,4)
plt.plot([0,1],[0,2])
plt.subplot(235)
plt.plot([0,1],[0,3])
plt.subplot(236)
plt.plot([0,1],[0,4])
plt.show() # 展示
![](https://img.haomeiwen.com/i9218360/0a3ecfdf6db2a06e.png)
这里的代码需要逐行解释,首先设置两行一列,这就是上面的第一个图,然后设置2行3列,此时下面最左边的图就是位置为4,然后依次是(2,3,4),(2,3,5),(2,3,6)。
-
Subplot分格展示
主要使用的函数是matplotlib模块中的subplot2grid函数。这个函数的风格可以使m*n的矩阵风格,也可以是跨行或者跨列的风格。接下来,对该函数的用法和参数加以说明。
subplot2grid(shape,loc,rowspan,colspan.**kwrgs)
- shape:组合图框架,如(2,3)
- loc:指定图位置,如(0,0)
- rowspan:指定某个图跨行
- colspan:指定某个图跨列
import matplotlib.pyplot as plt
plt.figure()
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) # stands for axes
ax1.plot([1, 2], [1, 2])
ax1.set_title('ax1_title')
ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2)
ax3 = plt.subplot2grid((3, 3), (1, 2), rowspan=2)
ax4 = plt.subplot2grid((3, 3), (2, 0))
ax4.scatter([1, 2], [2, 2])
ax4.set_xlabel('ax4_x')
ax4.set_ylabel('ax4_y')
ax5 = plt.subplot2grid((3, 3), (2, 1))
![](https://img.haomeiwen.com/i9218360/dccf37c22c837969.png)