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.xticksx 軸の目盛りの位置とラベルを設定または取得する関数を見てください。これを呼ぶと

locs, labels = plt.xticks()

あなたのコード例では、xticks が見つかります

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

2 つのポイント -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 に答える