2. Matplotlib子图与多子图

第1关:手动创建子图

任务:绘制一个包含两个样式不一致的子图。

import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt

def student(x):
    '''
    根据输入数据绘制不同的两个子图
    :param x: 输入数据,类型为array
    :return: None
    '''
    # ********* Begin *********#
	plt.figure(figsize=(12,12))
    plt.subplot(1, 2, 1)
    plt.plot(x,x**2,'--r',linewidth=1,alpha=0.3)
    plt.subplot(1, 2, 2)
    plt.plot(x,np.log(x))  
    plt.savefig("Task1/img/T1.png")
    # ********* End *********#

第2关:网格子图

任务:编写一个能绘制一个两行四列的网格子图的程序。

import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt

def student():
    '''
    绘制不同一个两行四列的网格子图,并设置图形高度与宽度为0.4
    :param: None
    :return: None
    '''
    # ********* Begin *********#
    fig=plt.figure(figsize=(10,10))
    fig.subplots_adjust(hspace=0.4, wspace=0.4)
    for i in range(1, 9):
        ax = fig.add_subplot(2, 4, i)   
    plt.savefig("Task2/img/T1.png")
    # ********* End *********#

第3关:更复杂的排列方式

任务:编写一个绘制不规则子图的函数。

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
def student():
    '''
    绘制一个2行4列的不规则子图宽高间隔分别为0.4、0.3。
    第0行设置2个子图,第一个子图占3,第二个子图占1。第二行相反
    :param: None
    :return: None
    '''
    # ********* Begin *********#
    plt.figure(figsize=(10,10))
    grid = plt.GridSpec(2, 4, wspace=0.4, hspace=0.3)
    plt.subplot(grid[0, :3])
    plt.subplot(grid[0, 3:])	#[0,-1]
    plt.subplot(grid[1, 0])		#[-1,0]
    plt.subplot(grid[1, 1:])	#[-1,1:]
    plt.savefig("Task3/img/T1.png")
    # ********* End *********#
  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值