2013-10-28 3 views
29

Если я сюжет один imshow сюжета я могу использоватьPython xticks в сюжетных

fig, ax = plt.subplots() 
ax.imshow(data) 
plt.xticks([4, 14, 24], [5, 15, 25]) 

заменить мои XTICK этикетки.

Теперь я черчение 12 imshow участков с использованием

f, axarr = plt.subplots(4, 3) 
axarr[i, j].imshow(data) 

Как я могу изменить свои xticks только для одного из этих сюжетных? Я могу получить доступ только к осям подзаголовков с axarr[i, j]. Как я могу получить доступ к plt только для одного конкретного подзаголовка?

ответ

74

Есть два способа:

  1. Использование осей методы объекта сюжетного (например ax.set_xticks и ax.set_xticklabels) или
  2. Используйте plt.sca для установки текущих осей для pyplot состояния машины (т.е. интерфейса plt).

В качестве примера (это также иллюстрирует использование setp, чтобы изменить свойства всех подзаговоров):

import matplotlib.pyplot as plt 

fig, axes = plt.subplots(nrows=3, ncols=4) 

# Set the ticks and ticklabels for all axes 
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'], 
     yticks=[1, 2, 3]) 

# Use the pyplot interface to change just one subplot... 
plt.sca(axes[1, 1]) 
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red') 

fig.tight_layout() 
plt.show() 

enter image description here

Смежные вопросы