zoukankan      html  css  js  c++  java
  • Matplotlib简介和pyplot的简单使用——subplot

    之前介绍了pyplot里画简单的数据曲线,接下来介绍subplot相关的内容。
    subplot是为了在一张图里放多个子图,与Matlab里的subplot类似。

    pyplot是一个有状态的对象,包含了当前的图,画图区域,等。

    pyplot通过调用subplot或者add_subplot来增加子图,

    p1 = plt.subplot(211) 或者 p1 = plt.subplot(2,1,1), 表示创建一个2行,1列的图,p1为第一个子图,
    然后在p1上画曲线,设置标注标题图例等,就可以使用p1来调用相关的函数,
    与pyplot相同的是,可以直接使用pyplot画图,添加label,等,也可以是使用p1来做这些事情。
    与pyplot不同的是,有一些函数的名字不太一样,添加坐标轴的标注的函数为set_xlabel和set_ylabel,
    添加标题set_title,只是给子图添加标题,由于pyplot是一个有状态的对象,所以pyplot.title也是给当前子图添加标题,
    如果要给整个图添加标题,可以使用pyplot.suptitle(text)。

    #!/usr/bin/env python
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    def f1(t):
        return np.exp(-t)*np.cos(2*np.pi*t)
    
    def f2(t):
        return np.sin(2*np.pi*t)*np.cos(3*np.pi*t)
    
    t = np.arange(0.0,5.0,0.02)
    
    plt.figure(figsize=(8,7),dpi=98)
    p1 = plt.subplot(211)
    p2 = plt.subplot(212)
    
    p1.plot(t,f1(t),"g-",label="$f(t)=e^{-t} \cdot \cos (2 \pi t)$")
    p2.plot(t,f2(t),"r-.",label="$g(t)=\sin (2 \pi t) \cos (3 \pi t)$",linewidth=2)
    
    p1.axis([0.0,5.01,-1.0,1.5])
    
    p1.set_ylabel("v",fontsize=14)
    p1.set_title("A simple example",fontsize=18)
    p1.grid(True)
    p1.legend()
    
    p2.axis([0.0,5.01,-1.0,1.5])
    p2.set_ylabel("v",fontsize=14)
    p2.set_xlabel("t",fontsize=14)
    p2.legend()
    
    plt.show()

    最后得到的图如下,

    这些在Matplotlib的手册里面都有,英文的,这里算是翻译吧,顺便总结一下。

  • 相关阅读:
    jvm 垃圾收集器
    MySQL 查询结果去除边框
    MySQL5.7 半同步复制技术
    MySQL 5.7半同步复制技术 zero
    redis 迁移工具 redisshake
    MySQL 如何找出占用CPU较高的SQL
    部署redis sentinel
    MySQL的SQL_CALC_FOUND_ROWS 类似count(*)
    MongoDB 副本集删除超级用户后恢复
    【Linux】关于 Systemd/Journal
  • 原文地址:https://www.cnblogs.com/Frandy/p/python_pyplot_subplot.html
Copyright © 2011-2022 走看看