digit imshow () jest za małe


Próbuję renderować tablicę numpy przy użyciu imshow (), ponieważ jest podobny do imagesc () w Matlabie.
imshow(random.rand(8, 90), interpolation='nearest')

Powstały kształt jest bardzo mały na środku szarego okna, podczas gdy większość miejsca jest pusta. Jak ustawić parametry, aby powiększyć kształt? Próbowałem figsize = (xx, xx) i nie tego chcę. Podziękować!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli nie podasz argumentu
aspekt
do
imshow
, użyje on wartości
image.aspect
w Twoim
matplotlibrc . Domyślnie ta wartość w nowym[code]matplotlibrc
to
equal
.
W ten sposób
imshow
zbuduje twoją tablicę o równych proporcjach. [/code]Jeśli nie potrzebujesz jednakowego aspektu, możesz ustawić
aspekt
na
auto
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')

co daje następujący rysunek
Jeśli chcesz mieć równe proporcje, musisz dostosować
figsize
zgodnie z aspektem
fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()

co daje:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To dziwne, to zdecydowanie działa dla mnie:
figure(figsize = (20,2))
imshow(random.rand(8, 90), interpolation='nearest')

Nawiasem mówiąc, używam zaplecza „MacOSX”.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jestem też nowy w Pythonie. Oto, co wygląda tak, jak chcesz
axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height]
axis('scaled')`

Myślę, że to decyduje o wielkości płótna.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Zaktualizuj 2020
>

zgodnie z prośbą @baxxx, tutaj jest aktualizacja, ponieważ
random.rand
jest w międzyczasie przestarzały.
>
Działa to z Matplotlip 3.2.1:
from matplotlib import pyplot as plt
import random
import numpy as nprandom = np.random.random ([8,90])plt.figure(figsize = (20,2))
plt.imshow(random, interpolation='nearest')

Ten spisek:
https://i.stack.imgur.com/1Rhca.png
Aby zmienić liczbę losową, możesz poeksperymentować z
np.random.normal (0,1, (8,90))
(tutaj średnia = 0, odchylenie standardowe = 1).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się