3

我是 python 和 matplotlib 的新用户,所以要温柔。

我有一个更改了 x 和 y 标签的图,因此它们对应于化合物。

但是,例如制作一个 10x10 的图(我认为限制是 8x8)并不是我所有的标签都显示出来。

当然,我希望进行更改,以便所有标签都出现在 8 x 12 图中。

下面是我目前使用的随机数代码。

import numpy as np
import matplotlib.pyplot as plt

HOST = ['RuO2', 'IrO2', 'TiO2', 'MnO2','SnO2','MoO2','NbO2','Dummy','Dummy','Dummy']

GUEST = ['Ru','Ir','Ti','Mn','Sn','Fe','Ni','Zn','Mg','D']

data = np.random.random((10,10))

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(data)
fig.colorbar(cax)

ax.set_xticklabels(['']+HOST,rotation=90)
ax.set_yticklabels(['']+GUEST)

plt.show()

这当然会及时修改为我的数据等。

4

1 回答 1

4

查看该matplotlib.pyplot.xticks函数,它设置或获取 x 轴刻度位置和标签。如果我打电话给这个

locs, labels = plt.xticks()

在您的示例代码中,我得到 xticks 位于

>>> locs
[ -2.,   0.,   2.,   4.,   6.,   8.,  10.]

请注意,两个点 -2 和 10 有空标签,这对应于 5 个 x 轴刻度位置,因此您不会绘制所有标签,因为 x 轴刻度标签的数量超过 x 轴的数量勾选位置。尝试更换

ax.set_xticklabels(['']+HOST, rotation=90)

ax.xticks(range(len(HOST), HOST, rotation=90)

在这里,我们设置了 xtick 位置和标签。当然,y 轴刻度线也需要类似的替换。

于 2012-06-28T10:06:11.143 回答