matplotlib轴标签未与数据箱对齐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib轴标签未与数据箱对齐相关的知识,希望对你有一定的参考价值。

我试图绘制一个相关矩阵而不是bin号作为标签(参见y轴标签)我想要物理的,实际的单位(x轴标签)。不幸的是,我无法将xticks与箱子的中心对齐,我不明白为什么我在矩阵的每一列都没有标签。

下面的代码生成了这个数字:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
labels =['', '0.13','0.20','0.32','0.50','0.79','1.26','2.00','3.16','5.01']
plt.xticks(range(len(labels)+1), labels, size='small')
#The '+1 in range seems needed as if I don't include it the first label is not displayed at all
plt.imshow(np.corrcoef(bootstrap_samples_matrix.transpose()), interpolation='nearest', cmap=plt.cm.Reds, extent=(0.5,10.5,0.5,10.5), align="center")
plt.colorbar()
答案

您将xticks设置为标签定义的位置,但实际上它们并不相同。我想你想把标签设置到实际位置,就像这样;

替换:plt.xticks(范围(len(标签)+1),标签,尺寸='小')

使用:ax.set_xticklabels(标签,次要=假)

另一答案

要将xticks与区域的中心对齐,并且为了在矩阵的每列上都有标签,可以通过手动设置标签来实现。

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

manual_labels =['0.20','0.32','0.50','0.79','1.26','2.00','3.16']
ax.set_xticks([0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5])
ax.set_xticklabels(manual_labels, minor=False)

ax.set_yticks([0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5])
ax.set_yticklabels(manual_labels, minor=False)

以上是关于matplotlib轴标签未与数据箱对齐的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib 刻度标签锚 - 右对齐刻度标签(在右侧轴上)并将刻度标签的左(西)侧“剪辑”到轴

使用多个连接的箱线图更改 Matplotlib 中的轴刻度

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签

使用 Seaborn 和 Matplotlib 在热图和线图的共享子图中对齐 x 轴刻度

uitextfield 左视图中的标签未与文本对齐

Matplotlib 箱线图 x 轴