Das folgende CodefragmentSkalieren von Bildern, die durch imshow
import matplotlib.pyplot as plt
import numpy as np
arr1 = np.arange(100).reshape((10,10))
arr2 = np.arange(25).reshape((5,5))
fig, (ax1, ax2,) = plt.subplots(nrows=2, figsize=(3,5))
ax1.imshow(arr1, interpolation="none")
ax2.imshow(arr2, interpolation="none")
plt.tight_layout()
plt.show()
zwei Bilder mit der gleichen Größe erzeugt, aber eine viel niedrigere „Pixeldichte“ in dem zweiten.
Ich möchte das zweite Bild auf der gleichen Skala aufgetragen haben (dh Pixeldichte) der ersten, ohne die subfigure Füllung, möglicherweise korrekt ausgerichtet sind (dh der Ursprung des Bildes in der gleichen subplot Position als die erste.)
bearbeiten
die Formen der arr1
und arr2
sind nur ein Beispiel, das Problem zu zeigen. Nach was ich suche, ist eine Weise, um sicherzustellen, dass zwei verschiedene Bilder, die von imshow
in verschiedenen Teilen der Abbildung erzeugt werden, im genau gleichen Maßstab gezeichnet werden.
Was ist gerade vor dem Plotten Ihre 2D-Matrizen interpoliert? Es sollte viele Methoden in scipy oder scikit-image geben. Letzteres sollte einfacher zu bedienen sein, da es sofort einsatzbereit ist [resize] (http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.resize). – sascha
@sascha Ich brauche, dass der zweite Plot (der weniger Pixel hat) kleiner gemacht wird als der erste, so dass die xy-Skalen beider Bilder gleich sind. BTW Ich zeichne Daten, nicht Bilder, so ist es wichtig, dass die einzelnen "Pixel" mit ihren ungefähren Koordinaten sichtbar bleiben. Auch eine auf 'pcolormesh' basierende Lösung ist akzeptabel. –