Matplotlib vline label parameter not showing

后端 未结 3 1822
再見小時候
再見小時候 2021-02-20 03:32

I want to label my vertical lines with matplotlib\'s .vline command, but for some reason the label parameter doesn\'t do anything/show anything on the final plot. Does anyone kn

相关标签:
3条回答
  • 2021-02-20 03:47

    For text near your line as in this example use:

    vline_value = 3
    
    fig, ax = plt.subplots(figsize=(10,10))
    ax.axvline(x=vline_value, ymin=0, ymax=1) 
    x_bounds = ax.get_xlim()
    ax.annotate(s='vline_value', xy =(((vline_value-x_bounds[0])/(x_bounds[1]-x_bounds[0])),1.01), xycoords='axes fraction', verticalalignment='right', horizontalalignment='right bottom' , rotation = 270)
    fig.savefig('example')
    

    Also, this short script holds more options if you want: https://pythonhosted.org/lineid_plot/#

    0 讨论(0)
  • 2021-02-20 03:57

    The label keyword is displayed in the legend. You need create the legend explicitly to see the label in the plot:

    plt.vlines([1,2,3], 0, 1, label='test')
    plt.legend()
    
    0 讨论(0)
  • 2021-02-20 04:09

    This works

    plt.plot(x,y)
    plt.vlines(x=pah, ymin=0, ymax=0.6, colors='0.75', linestyles='dashed', label='PAHs')
    plt.legend()
    

    but I don't know if this is what you expect

    0 讨论(0)
提交回复
热议问题