【问题标题】:How to add label to interval group in y-axis in matplotlib pyplot?如何在matplotlib pyplot的y轴上为间隔组添加标签?
【发布时间】:2019-09-20 02:14:23
【问题描述】:

参考这个stackoverflow线程Specifying values on x-axis,生成下图。

我想像这样在上图中添加区间名称。

如何在y轴的每个区间组中添加这样的区间组名称?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    这是一种通过创建双轴并修改其刻度标签和位置的方法。这里的技巧是在现有刻度之间找到中间位置loc_new,以放置您的字符串Interval i。你只需要玩一点就可以完全得到你想要的身材。

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots()
    
    x = np.array([0,1,2,3])
    y = np.array([0.650, 0.660, 0.675, 0.685])
    my_xticks = ['a', 'b', 'c', 'd']
    plt.xticks(x, my_xticks)
    plt.yticks(np.arange(y.min(), y.max(), 0.005))
    plt.plot(x, y)
    plt.grid(axis='y', linestyle='-')
    
    ax2 = ax.twinx()
    ax2.set_ylim(ax.get_ylim())
    
    loc = ax2.get_yticks()
    loc_new = ((loc[1:]+loc[:-1])/2)[1:-1]
    ax2.set_yticks(loc_new)
    
    labels = ['Interval %s' %(i+1) for i in range(len(loc_new))]
    ax2.set_yticklabels(labels)
    ax2.tick_params(right=False) # This hides the ticks on the right hand y-axis
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-23
      • 2017-05-27
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多