python - 更改 matplotlib 轴中的 x 轴刻度标签

标签 python matplotlib

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

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()

这就是我得到的: enter image description here

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

最佳答案

这样的事情应该有效:

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)

关于python - 更改 matplotlib 轴中的 x 轴刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59186269/

相关文章:

Python:如何绘制以颜色编码值作为背景的信号?

python - 查找列表的多个子集或多个列表的单个超集

python - Python 在哪里寻找库二进制文件?

python - 如何使用 Python 将 CSV 数据从宽格式转置为长数据集

python - 单元测试导致 sys.exit()

python - 为数据框中的每个非零值绘制一条垂直线

python - 使用 matplotlib 将图像显示为灰度

python - 在 python 中使用 matplotlib 制作自定义颜色图

python - 使用 pandas 创建数据框而不使用 for 循环的有效方法

python - Matplotlib 3D 图 - 输入数据的二维格式?