Loading

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()

划分子图

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

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

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

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

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

设置标题

全局标题

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()


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

tight_layout()函数

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

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

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

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

再随便举个例子

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()

posted @ 2021-03-25 22:36  克豪  阅读(351)  评论(0)    收藏  举报