本文主要是介绍[python] matplotlib.pyplot 绘制高宽不同、多行多列子视图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
假如我们想要绘制这样的效果:
方式1:
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np# 声明一个GridSpec对象实例,创建的是6行2列的图像布局。
grid = plt.GridSpec(nrows=6, ncols=2, wspace=0.2, hspace=0.2)# 设置整个图像大小。
plt.figure(figsize = (12, 10))
# 第1个子视图 占第一行
plt.subplot(grid[0, :])
plt.hist(np.random.rand(50), orientation='horizontal', edgecolor = 'black')# 第2个子视图 占第二行
plt.subplot(grid[1, :])
plt.scatter(np.random.rand(100),np.random.rand(100), color = 'r', edgecolor = 'black')# 第3个子视图 占第三行
plt.subplot(grid[2, :])
plt.plot(np.arange(10), np.random.rand(10))# 第4个子视图 占第四、五行 第一列
plt.subplot(grid[3:5, 0])
plt.plot(np.arange(10), np.arange(10) ** 2)
# 第5个子视图 占第四、五行 第二列
plt.subplot(grid[3:5, 1])
plt.plot(np.arange(8), -np.arange(8) ** 2)# 第6个子视图 占第六行
plt.subplot(grid[5, :])
plt.plot(np.arange(10), np.random.rand(10))plt.show()
方式2:
在上面做一点点修改,记住每个子视图,方便以后的操作,建议使用这种方式。
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np# 声明一个GridSpec对象实例,创建的是6行2列的图像布局。
grid = plt.GridSpec(nrows=6, ncols=2, wspace=0.2, hspace=0.2)# 设置整个图像大小。
plt.figure(figsize = (12, 10))
# 第1个子视图 占第一行
axes0 = plt.subplot(grid[0, :])
axes0.hist(np.random.rand(50), orientation='horizontal', edgecolor = 'black')# 第2个子视图 占第二行
axes1 = plt.subplot(grid[1, :])
axes1.scatter(np.random.rand(100),np.random.rand(100), color = 'r', edgecolor = 'black')# 第3个子视图 占第三行
axes2 = plt.subplot(grid[2, :])
axes2.plot(np.arange(10), np.random.rand(10))# 第4个子视图 占第四、五行 第一列
axes3 = plt.subplot(grid[3:5, 0])
axes3.plot(np.arange(10), np.arange(10) ** 2)
# 第5个子视图 占第四、五行 第二列
axes4 = plt.subplot(grid[3:5, 1])
axes4.plot(np.arange(8), -np.arange(8) ** 2)# 第6个子视图 占第六行
axes5 = plt.subplot(grid[5, :])
axes5.plot(np.arange(10), np.random.rand(10))plt.show()
这篇关于[python] matplotlib.pyplot 绘制高宽不同、多行多列子视图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!