如何在matplotlib中更改轴标签?

时间:2020-01-18 08:07:21

标签: python matplotlib

我具有以下代码,它们使用matplotlib(python 3.6.9,matplotlib 3.1.2,Mac Mojave)创建了一个简单的图:

Type: H. 12345678                  | Cost: 71.09
Target: aaaaaaaaaaaaaaa            | ABC: 123 ggg 

创建的图符合预期:

enter image description here

现在,为了重新标记xtick / ytick标签,我正在使用以下代码

import numpy as np
import matplotlib.pyplot as plt

plt.imshow(np.random.random((50,50)))
plt.show()

我希望第二个标签被'22'代替,但其他所有内容保持不变。但是,我得到以下图:

enter image description here

  1. 情节的左侧有一些意想不到的白色区域
  2. 所有其他标签都消失了。

如何正确执行?

提醒一下:我只想更改原始标签之一,就能获得与原始图像完全相同的结果(第一张图)。

此问题曾被问过,例如here。但是答案似乎不起作用。这是代码

import numpy as np
import matplotlib.pyplot as plt

plt.imshow(np.random.random((50,50)));

ticks, labels = plt.xticks()
labels[1] = '22'
plt.xticks(ticks, labels)

plt.show()

它将创建如下图像:

enter image description here

不再显示白色区域,但其他标签仍未显示。

1 个答案:

答案 0 :(得分:1)

使用子图创建轴,以便可以使用set_xticklabels方法,以便更新标签。

您需要使用canvas.draw()来获取值。

import numpy as np
import matplotlib.pyplot as plt

fig,ax = plt.subplots()
ax.imshow(np.random.random((50,50)));
fig.canvas.draw()
#labels = ['-10','0','22','20','30','40'] or
labels[2]=22
ax.set_xticklabels(labels)

plt.show()

输出:

Output image

希望这就是您所需要的!