Próbuję zwizualizować tablicę numpy przy użyciu imshow (), ponieważ jest podobna do imagesc () w Matlabie.
imshow(random.rand(8, 90), interpolation='nearest')
Wynikowa liczba jest bardzo mała w środku szarego okna, podczas gdy większość miejsca jest niezajęta. Jak ustawić parametry, aby zwiększyć liczbę? Próbowałem figsize = (xx, xx) i nie tego chcę. Dzięki!
python
numpy
matplotlib
Ruofeng
źródło
źródło
Odpowiedzi:
Jeśli nie podasz
aspect
argumentuimshow
, użyje wartości forimage.aspect
w twoimmatplotlibrc
. Wartością domyślną w nowymmatplotlibrc
jestequal
. Więcimshow
wykreśli twoją tablicę z równym współczynnikiem proporcji.Jeśli nie potrzebują równej aspekt można ustawić
aspect
naauto
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')
co daje następujący rysunek
Jeśli chcesz mieć równy współczynnik proporcji, musisz dostosować
figsize
go do aspektufig, ax = subplots(figsize=(18, 2)) ax.imshow(random.rand(8, 90), interpolation='nearest') tight_layout()
co daje:
źródło
To dziwne, zdecydowanie działa na mnie:
from matplotlib import pyplot as plt plt.figure(figsize = (20,2)) plt.imshow(random.rand(8, 90), interpolation='nearest')
Przy okazji, używam zaplecza "MacOSX".
źródło
plt.figure(figsize = (x_new, y_new))
i dla imgshow () musisz teraz zaimportować ioimage, ponieważ SciPy imageshow () zostanie wkrótce wycofaneJestem też nowy w Pythonie. Oto coś, co wygląda na to, że zrobi to, co 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.
źródło
Zaktualizuj 2020
zgodnie z prośbą @baxxx, tutaj jest aktualizacja, ponieważ w
random.rand
międzyczasie jest przestarzała.Działa to z Matplotlip 3.2.1:
from matplotlib import pyplot as plt import random import numpy as np random = np.random.random ([8,90]) plt.figure(figsize = (20,2)) plt.imshow(random, interpolation='nearest')
To działa:
Aby zmienić liczbę losową, możesz poeksperymentować z
np.random.normal(0,1,(8,90))
(tutaj średnia = 0, odchylenie standardowe = 1).źródło