当前位置:   article > 正文

matplotlib一个界面绘制多个图_matplotlib将多图画在一张纸上

matplotlib将多图画在一张纸上

matplotlib绘图可以参考:matplotlib的基本使用

Figure 对象:创建画布

figure( num,figsize,dpi,facecolor,edgecolor,frameon )

  • num:图形编号或名称,取值为数字/字符串。
  • figsize:绘图对象的宽和高,单位为英寸。
  • dpi:绘图对象的分辨率,缺省值为80。
  • facecolor:背景颜色。
  • edgecolor:边框颜色。
  • frameon:表示是否显示边框。
import matplotlib.pyplot as plt 

plt.figure(figsize=(3,2),facecolor="green")
plt.plot()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

划分子图

subplot( 行数, 列数, 子图序号 )

以中间的那个2x2的划分方式为例

plt.subplot(2,2,1)
plt.subplot(2,2,2)
plt.subplot(2,2,3)
plt.subplot(2,2,4)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

每执行一次subplot相当于绘制了一个子图,如果只执行三个subplot

plt.subplot(2,2,1)
plt.subplot(2,2,2)
# plt.subplot(2,2,3)
plt.subplot(2,2,4)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

设置标题

全局标题

suptitle (标题文字)

子图标题

title (标题文字)
主要参数;

plt.subplot(2,2,1)
plt.title('subtitle1')

plt.subplot(2,2,2)
plt.title('subtitle2',loc='left',color='blue')

plt.subplot(2,2,3)
myfont_dict = {
    'fontsize':20,
    "color":"green",
    "rotation":45
    }
plt.title('subtitle3',fontdict=myfont_dict)

plt.subplot(2,2,4)
plt.title('subtitle4',color="#ffffff",backgroundcolor="#000000")

plt.suptitle("title",fontsize= 30,color = "red")

plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20


为了防止互相遮挡,使用tight_layout()函数

tight_layout()函数

检查坐标轴标签、刻度标签、和子图标题,自动调整子图,使之填充整个绘图区域,并消除子图之间的重叠

tight_layout( rect=[left, bottom, right, top])
  • 1

传入的四个数字,分别是矩形左下角和右上角的点的坐标,如果不传入默认是[0,0,1,1]

plt.tight_layout(rect = [0,0,1,0.9])
  • 1

再随便举个例子

import numpy as np
import matplotlib.pyplot as plt


def main():
    # scatter#  #
    #plt.figure()  # set up a figure #
    for i in range(1,5):
        plt.subplot(2,2,i)  # a figure with 3 rows and 3 columns #
        n = 128
        X = np.random.normal(0, 1, n)
        Y = np.random.normal(0, 1, n)
        T = np.arctan2(Y, X)
        # plt.axes([0.025, 0.025, 0.95, 0.95])#
        plt.scatter(X, Y, s=75, c=T, alpha=5)
        plt.xlim(-1.5, 1.5), plt.xticks([])  # the range about x #
        plt.ylim(-1.5, 1.5), plt.yticks([])
        plt.axis()
        plt.title("scatter")
        plt.xlabel("X")
        plt.ylabel("Y")
    plt.show()
if __name__ == "__main__":
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/612697
推荐阅读
相关标签
  

闽ICP备14008679号