【问题标题】:Change x-axis tick label in matplotlib axes [duplicate]更改matplotlib轴中的x轴刻度标签[重复]
【发布时间】:2020-03-29 20:39:40
【问题描述】:

我正在使用轴在同一个图中绘制两个归一化直方图,并希望有一个能够捕获任何高于 6000 的值的 bin。这是我到目前为止所做的:-

fig,ax=plt.subplots(1,2)
x1 = (60, 80, 1000, 7000, 8000)
x2 = (9000, 10000, 11000, 12000, 13000)


weights1= np.ones_like(x1)/float(len(x1))
weights2= np.ones_like(x2)/float(len(x2))

bins= np.arange(0, 6000, 100)
ax[0].hist(np.clip(x1, bins[0], bins[-1]),  bins=bins,  weights=weights1, 
           alpha =.5, label = "A", color = "blue")
ax[1].hist(np.clip(x2, bins[0], bins[-1]),  bins=bins,  weights=weights2, 
           alpha =.5, label = "B", red = "red")
plt.show()

这是我得到的:

如何将 x 刻度标签从 6000 更改为 6000+,以表明它捕获了高于该值的所有观察结果?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    这样的事情应该可以工作:

    ticks, labels = plt.xticks()
    labels[-1].set_text('6000+')
    plt.xticks(ticks, labels)
    

    更新: 您可以手动完成所有操作:

    bins= np.arange(0, 6000, 100)
    plt.sca(ax[0])
    plt.hist(np.clip(x1, bins[0], bins[-1]),  bins=bins,  weights=weights1, 
               alpha =.5, label = "A", color = "blue")
    plt.xticks([0,2000,4000,6000], ['0','2000','4000','6000+'])
    
    plt.sca(ax[1])
    plt.hist(np.clip(x2, bins[0], bins[-1]),  bins=bins,  weights=weights2, 
               alpha =.5, label = "B", color = "red")
    plt.xticks([0,2000,4000,6000], ['0','2000','4000','6000+'])
    

    理论上这也应该有效,但由于某种原因不能...如果有人可以阐明这个问题...?

    plt.sca(ax[1])
    plt.hist(np.clip(x2, bins[0], bins[-1]),  bins=bins,  weights=weights2, 
               alpha =.5, label = "B", color = "red")
    ticks, labels = plt.xticks()
    labels[-1].set_text('6000+')
    plt.xticks(ticks, labels)
    

    【讨论】:

    • 试过这个。真的不行。我有多个轴(并排绘制 2 个图形,每个图形有 2 个直方图),所以新的 xtick 转到下一个图。现在我也看到酒吧不是真的在 6000 而是在那之前在我的 OP 中。我预计它会达到 6000。
    • “现在我看到酒吧实际上并不是在 6000,但在那之前”这是因为你如何定义你的垃圾箱。您可以调整它,也可以调整条形相对于 bin 中心的位置。
    • 好的,谢谢。我想我会对此进行更多阅读。知道如何使用 ax 而不是 plt 更改 xtick 标签吗?
    • 检查更新...
    • plt.sca 是臭代码
    猜你喜欢
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多