пользовательские тики для python matplotlib imshow () - PullRequest
14 голосов
/ 21 февраля 2012

Я пытаюсь установить пользовательские метки на выводе imshow (), но не нашел правильную комбинацию.

Сценарий ниже суммирует мои попытки. В этом сценарии я пытаюсь сделать отметки для всех четных чисел на каждой оси вместо значений по умолчанию (-10, -5,0,5,10)

#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np

#Generate random histogram
N=25
middle=N/2
hist=np.random.random_sample((N,N))

#Ticks at even numbers, data centered at 0
ticks=np.arange(-middle,middle+2,2)

extent=(-middle,middle,-middle,middle)
plt.imshow(hist, interpolation='nearest', extent=extent, origin='lower')
plt.colorbar()

#
#These are my attempts to set the tick marks
#
#plt.gcf().gca().set_ticks(ticks)

#plt.gca().set_ticks(ticks)

#ax=plt.axes()
#ax.set_ticks(ticks)

plt.show()

У меня начинает складываться ощущение, что set_ticks () может не подходить для этого, но я не уверен, что еще можно попробовать.

Спасибо!

1 Ответ

15 голосов
/ 21 февраля 2012

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.xticks

plt.xticks(ticks)

Редактировать: как упоминает Янн в комментарии, вас также может заинтересовать plt.yticks()

Результат (с использованием plt.xticks(ticks, fontsize=9)): enter image description here

...