2013-05-20 17 views
21

Przychodzę do Pythona i numpy i matplotlib z tła Matlaba. Jedną z funkcji Matlaba, której używam cały czas, jest imagesc. Czy gdzieś w matplotlib istnieje dokładny odpowiednik tego? Wiem o imshow i pcolor, ale pierwsza nie pozwala na łatwe ustawienie jednostek osi, takich jak imagesc, a druga umożliwia ustawienie współrzędnych xi współrzędnych pikseli zamiast centrów pikseli, których nie uważam za intuicyjne.Odpowiednik obrazów matlab w matplotlib?

Zasadniczo, jeśli mam obraz, który chcę wyświetlić z etykietami osi X i Y, które nie są liczbami pikselowymi, ale są liczbowe, jak odległość w mm, jaki jest najprostszy sposób zrobić to w matplotlib?

Odpowiedz

16

Chcesz the extent kwarg

ax.imshow(data, extent=[0, 1, 0, 1]) 

zobaczyć Imshow: extent and aspect bardziej szczegółowym przykładzie.

+0

To jest pomocne, dziękuję, przeoczyłem to kwarg w dokumentacji imshow. Wydaje się, że stopień arg ustawia współrzędne krawędzi obrazu, prawda? Tak więc jednym z zadań, które to nie rozwiązuje jest przypisywanie współrzędnych do centrów pikseli, jeśli to jest to, co chcę zrobić. – Matt

+1

Z dokumentacji 'extent':" Limity danych dla osi. Domyślnie przypisuje wiersz zerowy, indeksy kolumn do x, y środka pikseli. " Robi to, co chcesz domyślnie. To powiedziawszy, myślę, że w pewnym momencie mogło się zmienić między wersjami mpl. – tacaswell

+0

Cóż, mam na myśli przypisywanie współrzędnych mojego wyboru do centrów pikseli, a nie tylko liczby pikselowej. – Matt

Powiązane problemy