matplotlib绘图

最近复习了《利用python进行数据分析》一书,主要回顾绘图工具的使用方法和数据处理接口。

matplotlib绘图的不同方式

以热力图和折线图为例,体现面向对象的绘图方式和pyplot接口的不同,理论上面向对象的绘图方式是更推荐的使用方法

  • 数据准备

    import matplotlib.pyplot as plt
    import numpy as np
    data1 = np.random.randn(100, 100).cumsum(0)
    data2 = np.random.randn(10).cumsum()
    
  • plot方法

    plt.figure(figsize=(15, 5))
    plt.subplot(121)
    plt.imshow(data1, )
    plt.colorbar()
    plt.grid(True)
    plt.xlabel("test_x")
    plt.ylabel("test_y")
    
    plt.subplot(122)
    plt.plot(data2)
    plt.xlim((0,12))
    plt.ylim((-2,5))
    plt.xticks([0,1,2,3,4,5,6,7,8,9,10,11,12], ['q','w','e','r','t','y','u','i','o','p','a','s','d'])
    
    plt.show()
    

    结果:

  • 面向对象接口

    fig, axes = plt.subplots(1,2,figsize=(15,5), facecolor='w')
    # 通常设置subplot分布时,返回的axessize是等同于给定的行列数的,即返回axes的二维数组,
    # 但是当行或者列为1时,返回的是一维axes数据
    im = axes[0].imshow(np.random.randn(100,100).cumsum(0))
    fig.colorbar(im, ax=axes[0])
    axes[0].grid(True)
    axes[0].set_xlabel("test_x")
    axes[0].set_ylabel("test_y")
    
    axes[1].plot(data2)
    axes[1].set_xlim((0,12))
    axes[1].set_ylim((-2,5))
    axes[1].set_xticks([0,1,2,3,4,5,6,7,8,9,10,11,12])
    axes[1].set_xticklabels(['q','w','e','r','t','y','u','i','o','p','a','s','d'])
    
    plt.show()
    

    结果:

未完待续。。。

作者

swallow

发布于

2023-03-26

更新于

2023-04-11

许可协议

评论