Bild mit einem Zoom anzeigen = 1 mit Matplotlib imshow () (wie?)

Ich möchte ein Bild (zB 800×800) mit Matplotlib.pyplot imshow () -Funktion anzeigen, aber ich möchte es so anzeigen, dass ein Pixel des Bildes ein Pixel auf dem Bildschirm einnimmt (Zoomfaktor = 1, kein Schrumpfen, keine Dehnung).

Ich bin Anfänger, also weißt du, wie ich vorgehen soll?

2 Solutions collect form web for “Bild mit einem Zoom anzeigen = 1 mit Matplotlib imshow () (wie?)”

Matplotlib ist dafür nicht optimiert. Sie wären ein bisschen besser dran mit einfacheren Optionen, wenn Sie nur ein Bild an einem Pixel-zu-eins-Pixel anzeigen möchten. (Schauen Sie sich Tkinter an.)

Das ist gesagt worden:

import matplotlib.pyplot as plt import numpy as np # DPI, here, has _nothing_ to do with your screen's DPI. dpi = 80.0 xpixels, ypixels = 800, 800 fig = plt.figure(figsize=(ypixels/dpi, xpixels/dpi), dpi=dpi) fig.figimage(np.random.random((xpixels, ypixels))) plt.show() 

Oder wenn du es wirklich willst, imshow du ein bisschen ausführlicher sein. Allerdings hat dies den Vorteil, dass Sie zoomen, etc., wenn gewünscht.

 import matplotlib.pyplot as plt import numpy as np dpi = 80 margin = 0.05 # (5% of the width/height of the figure...) xpixels, ypixels = 800, 800 # Make a figure big enough to accomodate an axis of xpixels by ypixels # as well as the ticklabels, etc... figsize = (1 + margin) * ypixels / dpi, (1 + margin) * xpixels / dpi fig = plt.figure(figsize=figsize, dpi=dpi) # Make the axis the right size... ax = fig.add_axes([margin, margin, 1 - 2*margin, 1 - 2*margin]) ax.imshow(np.random.random((xpixels, ypixels)), interpolation='none') plt.show() 

Wenn du nicht wirklich Matlibplot brauchst, hier ist der beste Weg für mich

 import PIL.Image from io import BytesIO import IPython.display import numpy as np def showbytes(a): IPython.display.display(IPython.display.Image(data=a)) def showarray(a, fmt='png'): a = np.uint8(a) f = BytesIO() PIL.Image.fromarray(a).save(f, fmt) IPython.display.display(IPython.display.Image(data=f.getvalue())) 

Verwenden Sie showbytes() um eine showarray() Zeichenfolge showarray() , und showarray() um ein numpy-Array anzuzeigen.

  • Zählpunkte in einer Ellipse
  • Update-Rahmen in Matplotlib mit Live-Kamera-Vorschau
  • Wie kann ich zwei verschiedene Pylab-Figuren aus der gleichen Taste aus einer Wpython-Gui öffnen?
  • Python 2 Importfehler: kann den Namen nicht entpacken
  • In matplotlib, wie änderst du die fontsize einer einzelnen figur?
  • Matplotlib / PyQT4: transparente Figur
  • Wie lese ich das Datum / Uhrzeit-Feld aus der csv-Datei und zeichne ein Diagramm entsprechend in python
  • Wie komme ich matplotlibs Figurenklasse?
  • Matplotlib-Stil funktioniert nicht in Pandas Bar Plot
  • Animation mit pcolormesh routine in matplotlib, wie kann ich die Daten initialisieren?
  • Erstellen Sie eine eigene Farbkarte mit matplotlib und Plot-Farbskala
  • Python ist die beste Programmiersprache der Welt.