美文网首页
自定义python的matplotlib中的X轴刻度(为时间)

自定义python的matplotlib中的X轴刻度(为时间)

作者: 我的章鱼小丸子呢 | 来源:发表于2021-06-28 14:01 被阅读0次

    转载:https://www.zhihu.com/question/54051233/answer/1174232322

    给个例子


    例子
    #绘图部分
    times=order_data['start_time_noday'].tolist()
    # 分时间区间,保证最后一位纳入标签
    ticks=list(range(0,len(times),2))
    if ticks[-1]!=len(times)-1:
        ticks.append(len(times)-1)
    labels=[times[i] for i in ticks]
    # 中文和负号的正常显示
    mpl.rcParams['font.sans-serif'] = ['Times New Roman']
    mpl.rcParams['font.sans-serif'] = [u'SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    fig= plt.figure(figsize=(8, 4),dpi=100)
    # 设置图形的显示风格
    plt.style.use('ggplot')
    ax1 = fig.add_subplot(111)
    ax1.plot(order_data['order_id'],'-v',linewidth=1.5)
    ax1.legend(loc='upper right', frameon=False,fontsize = 10)
    ax1.set_xlabel('时间',fontsize =10)
    ax1.set_ylabel('订单量',fontsize =10)
    ax1.set(xlim=[0,len(times)-1])
    ax1.set_xticks(ticks)
    ax1.set_xticklabels(labels, rotation=45, horizontalalignment='right')
    ax1.tick_params(labelsize=8)
    ax1.set_title('骑行订单时间分布',fontsize =8)
    ax1.legend(loc='upper right', frameon=False,fontsize = 10)
    plt.savefig('./time_distribute.png',format='png', dpi=300)
    plt.show()
    

    绘图结果


    result

    主要起作用的是这两行

    ax1.set_xticks(ticks)
    ax1.set_xticklabels(labels, rotation=45, horizontalalignment='right')
    ticks代表刻度位置,labels是在刻度位置显示的标签
    下面代码中的2代表间隔两个显示,可以根据需求自行更改
    times=order_data['start_time_noday'].tolist()
    # 分时间区间,保证最后一位纳入标签
    ticks=list(range(0,len(times),2))
    if ticks[-1]!=len(times)-1:
        ticks.append(len(times)-1)
    labels=[times[i] for i in ticks]
    

    如,改为5


    result

    相关文章

      网友评论

          本文标题:自定义python的matplotlib中的X轴刻度(为时间)

          本文链接:https://www.haomeiwen.com/subject/cxyoyltx.html