2017-12-26 14 views
0

Ich habe den folgenden Code:Python - imshow zeigt kein Bild

import matplotlib.pyplot 
import numpy 

data_file = open("train/small_train.csv", "r") 
data_list = data_file.readlines() 
data_file.close() 

all_values = data_list[0].split(",") 
image_array = numpy.asfarray(all_values[1:]).reshape((28,28)) 
matplotlib.pyplot.imshow(image_array, cmap="Greys", interpolation="None") 

sollte dies die erste Zeile einer CSV-Datei lesen und die Pixelwerte (split(",") holen, legte sie zusammen ein Bild zu erzeugen .

Der Code läuft nur ohne Fehler aber ist das Bild nicht zeigt ...

+2

Vielleicht würde 'matplotlib.pyplot.show()' helfen? –

+1

P.S. Ein genereller Kommentar ist, dass Sie versuchen sollten, ein [minimales Arbeitsbeispiel] (https://stackoverflow.com/help/mcve) zu erstellen. Laien: Jeder sollte in der Lage sein, Ihr Beispiel direkt zu führen. In diesem Fall hätten Sie einige fiktive Daten erhalten können. –

+0

matplotlib.pyplot.show gibt moduleError: kein Modul namens show – fipsi

Antwort

1

Diese den Trick tun sollten, vergessen Sie die show() Methode zu verwenden.

Sie sollten from Schlüsselwort zu import nur die Funktion verwenden, die Sie wünschen. Dadurch müssen Sie die Datei, in der sie sich befinden, nicht aufrufen (wie matplotlib.pyplot). Ich habe auch das Schlüsselwort with verwendet, das den Datei-Director sehr gut verarbeitet. Es öffnet die Datei auf eine saubere Art und schließt sie richtig.

from matplotlib import pyplot as plt 
import numpy as np 

with open("train/small_train.csv", "r") as data: 
    data_list = data.readlines() 

all_values = data_list[0].split(",") 
image_array = np.asfarray(all_values[1:]).reshape((28,28)) 
plt.imshow(image_array, cmap="Greys", interpolation="None") 
plt.show() 
+0

danke! es hat für mich funktioniert :) – fipsi