Ich versuche, ein numpy-Array mit imshow () zu visualisieren, da es imagesc () in Matlab ähnelt.
imshow(random.rand(8, 90), interpolation='nearest')
Die resultierende Figur ist in der Mitte des grauen Fensters sehr klein, während der größte Teil des Raums nicht belegt ist. Wie kann ich die Parameter einstellen, um die Figur größer zu machen? Ich habe figsize = (xx, xx) ausprobiert und es ist nicht das, was ich will. Vielen Dank!
python
numpy
matplotlib
Ruofeng
quelle
quelle
Antworten:
Wenn Sie kein
aspect
Argument angebenimshow
, wird der Wert fürimage.aspect
in Ihrem verwendetmatplotlibrc
. Der Standardwert für diesen Wert in einem neuenmatplotlibrc
istequal
. Soimshow
wird Ihr Array mit gleichem Seitenverhältnis geplottet.Wenn Sie nicht über einen gleichen Aspekt müssen Sie festlegen können ,
aspect
zuauto
das gibt die folgende Abbildung
Wenn Sie ein gleiches Seitenverhältnis wünschen, müssen Sie
figsize
es an den Aspekt anpassenwas dir gibt:
quelle
Das ist seltsam, es funktioniert definitiv für mich:
Ich benutze übrigens das "MacOSX" Backend.
quelle
plt.figure(figsize = (x_new, y_new))
und für imgshow () müssen Sie jetzt ioimage importieren, da die SciPy imageshow () bald veraltet sein wirdIch bin auch neu in Python. Hier ist etwas, das so aussieht, als würde es tun, was Sie wollen
Ich glaube, das entscheidet über die Größe der Leinwand.
quelle
Update 2020
Wie von @baxxx angefordert, ist hier ein Update, da
random.rand
es mittlerweile veraltet ist.Dies funktioniert mit matplotlip 3.2.1:
Diese Handlungen:
Um die Zufallszahl zu ändern, können Sie experimentieren
np.random.normal(0,1,(8,90))
(hier Mittelwert = 0, Standardabweichung = 1).quelle