zoukankan      html  css  js  c++  java
  • 4.9Python数据处理篇之Matplotlib系列(九)---子图分布

    目录

    前言

    前面我们已经知道,一个figure可以画一张画布,今天我们讲的是在同一个figure里画多张子图,我们要用的是subplot与subplot2grid()方法来绘制子图。

    (一)subplot()方法

    1.语法说明

    subplot是均匀的分割绘图区,来进行子图的放置。

    1. 需要注意的是subplot并不适合来绘制跨行或者跨列的子图,跨行与跨列的子图绘制,交给subplot2grid()更容易完成。
    2. 如果分割的图只是个位数时,那么原本的表示方法:(2,2,1),与(221)等效,其他的不可如此。

    2.源代码

    # 导入模块
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 数据
    x = np.linspace(-10, 10, 100)
    y1 = x
    y2 = x**2
    y3 = x**3
    
    # 创建一个figure窗体
    fig = plt.figure(num="子图得比较")
    fig.suptitle("draw some subplot")
    
    # 绘制第一个子图
    ax1 = plt.subplot(2, 2, 1)
    plt.plot(x, y1)
    ax1.set_title("y1 = x")
    
    # 绘制第二个子图
    ax2 = plt.subplot(222)
    plt.plot(x, y2)
    ax2.set_title("y2=x**2")
    
    
    # 绘制第三个子图
    ax3 = plt.subplot(223)
    plt.plot(x, y3)
    ax3.set_title("y3=x**3")
    
    # 展示
    plt.show()
    

    3.输出效果

    01.png

    (二)subplot2grid方法

    1.语法说明

    subplot2grid((分割),(起始位置),colspan=列宽, rowspan=行宽)

    例如:plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1),

    将整块figure画布分成3行3列的格子,从第2行,第一列画起该子图,列宽占两格,行宽占一格。

    像figure一样,定义subplot2grid()子图以后,后续的操作都在该子图上,直到另一个子图的出现。

    2.源代码

    import matplotlib.pyplot as plt
    
    # 创建画布
    plt.figure()
    # 创建子图
    ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3, rowspan=1)
    ax1.plot([1, 2], [1, 2])
    ax1.set_title("No1")
    ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1)
    ax3 = plt.subplot2grid((3, 3), (1, 2), colspan=2, rowspan=2)
    ax4 = plt.subplot2grid((3, 3), (2, 0), colspan=1, rowspan=1)
    ax5 = plt.subplot2grid((3, 3), (2, 1), colspan=1, rowspan=1)
    
    plt.show()
    

    3.展示效果

    02.png

    作者:Mark

    日期:2019/02/01 周五

  • 相关阅读:
    如何统计一个字符串中某个字符出现的次数
    从GitHub克隆项目到本地
    nginx能做什么
    dubbo的使用实例
    zookeeper单机安装
    Http发送post(x-www-form-urlencoded)请求
    集群与分布式的区别
    cas的客户端应用是负载均衡,单点退出怎么办?
    mybatis执行DDL语句
    sql server 行列互换
  • 原文地址:https://www.cnblogs.com/zyg123/p/10517711.html
Copyright © 2011-2022 走看看