Chciałem wydrukować używając imshow w sposób podobny do drugiego przykładu tutaj http://www.scipy.org/Plotting_Tutorial, ale aby ponownie zdefiniować skalę dla osi. Chciałbym też, aby obraz był nieruchomy, podczas gdy ja to robię!Jak zmienić skalę imshow w matplotlib bez rozciągania obrazu?
kod z np
from scipy import *
from pylab import *
# Creating the grid of coordinates x,y
x,y = ogrid[-1.:1.:.01, -1.:1.:.01]
z = 3*y*(3*x**2-y**2)/4 + .5*cos(6*pi * sqrt(x**2 +y**2) + arctan2(x,y))
hold(True)
# Creating image
imshow(z, origin='lower', extent=[-1,1,-1,1])
xlabel('x')
ylabel('y')
title('A spiral !')
# Adding a line plot slicing the z matrix just for fun.
plot(x[:], z[50, :])
show()
Jeśli zmodyfikować stopień być szerszy, np
imshow(z, origin='lower', extent=[-4,4,-1,1])
obraz wynikowy jest rozciągnięta. Ale wszystko, co chciałem zrobić, to zmienić ticks, aby pokryć się z moimi danymi. Wiem, że mogę użyć pcolor do zachowania danych X i Y, ale ma to inne konsekwencje.
Znalazłem odpowiedź, która pozwala mi ręcznie przerobić wszystkie kleszcze:
How do I convert (or scale) axis values and redefine the tick frequency in matplotlib?
Ale to wydaje się nieco overkill.
Czy istnieje sposób zmiany zakresu wskazanego przez etykiety?
Aspekt jest dobrym rozwiązaniem dla mojego przypadku użycia, ponieważ nie mam tam działki. Naprawiasz Xticks w bardziej eleganckim rozwiązaniu niż moje. Dziękuję Ci! – ubershmekel