当前位置 博文首页 > python使用matplotlib绘制图片时x轴的刻度处理

    python使用matplotlib绘制图片时x轴的刻度处理

    作者:小朱小朱绝不服输 时间:2021-09-16 17:50

    在使用matplotlib绘制图片时,x轴的刻度可能比较密集,特别是以日期作为x轴时,则最后会显示不出来。

    数据如下,速度V的数组与时间字符串Date的数组:

    在这里插入图片描述

    绘制随时间变化的值的折线图。

    直接绘制折线图,可以发现x轴重叠。

    plt.plot(Date, V1, 'r', label='a')
    plt.plot(Date, V2, 'blue', label='b')
    plt.plot(Date, V3, 'black', label='c')
    plt.plot(Date, V4, 'yellow', label='d')

    在这里插入图片描述

    可以导入ticker库来解决这个问题,ticker可以改变数据轴的间距来解决日期显示不完整的问题。

    import matplotlib.pyplot as plt
    import matplotlib.ticker as ticker
    
    # 根据ticker的功能改变第一个为初始的数据,第二个则为间隔
    ticker_spacing = Date  # 日期的字符串数组
    ticker_spacing = 4
    # 创建画布
    fig, ax = plt.subplots(1, 1)
    plt.plot(Date, V1, 'r', label='a')
    plt.plot(Date, V2, 'blue', label='b')
    plt.plot(Date, V3, 'black', label='c')
    plt.plot(Date, V4, 'yellow', label='d')
    
    # rotation=30 为倾斜的度数,因为日期较长,需要倾斜才能更清晰显示
    ax.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing))
    plt.xticks(rotation=30)

    在这里插入图片描述

    最后,如果遇到保存图片显示不全的情况,如下:

    在这里插入图片描述

    则只需要在保存图片的时候加上参数:bbox_inches=‘tight',即可解决问题。

    plt.savefig('Lekima.tif', dpi=300, bbox_inches='tight')
    jsjbwy