我具有以下代码,它们使用matplotlib(python 3.6.9,matplotlib 3.1.2,Mac Mojave)创建了一个简单的图:
Type: H. 12345678 | Cost: 71.09
Target: aaaaaaaaaaaaaaa | ABC: 123 ggg
创建的图符合预期:
现在,为了重新标记xtick / ytick标签,我正在使用以下代码
import numpy as np
import matplotlib.pyplot as plt
plt.imshow(np.random.random((50,50)))
plt.show()
我希望第二个标签被'22'代替,但其他所有内容保持不变。但是,我得到以下图:
如何正确执行?
提醒一下:我只想更改原始标签之一,就能获得与原始图像完全相同的结果(第一张图)。
此问题曾被问过,例如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()
它将创建如下图像:
不再显示白色区域,但其他标签仍未显示。
答案 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()
输出:
希望这就是您所需要的!