Ich habe online gesucht und konnte nichts finden, was das tut, was ich will.
Ich möchte ein numpy-Array als Bild speichern, aber anstatt ein farbenfrohes Bild zu haben, möchte ich eine Schwarzweißdarstellung der Pixelwerte an der entsprechenden Rasterposition.
Zum Beispiel:
import numpy as np
x = np.array([[1,2],[3,4]])
print(x)
# [[1 2]
# [3 4]]
Ich möchte dies als Bild (.PNG) speichern, das wie folgt aussieht:
Mein aktueller Code erstellt ein Raster und platziert die Zahlen darin, aber es ist sehr schwierig, alles anzupassen, um es in einem Forschungsbericht präsentierbar zu machen.
Anstatt meinen übermäßig komplexen Code zu veröffentlichen, habe ich mich gefragt, ob es eine integrierte Funktion gibt, die dies in wenigen Codezeilen behandelt.
table
wäre es ein guter Anfang. Ich habe es nicht genug benutzt, um eine gute Antwort zu geben.table
.Antworten:
Ich würde LaTeX verwenden, um die Tabellen zu generieren, da sie schick aussehen und Sie entweder ein Bild generieren oder sie direkt in Ihr Dokument einfügen können. Ich habe den folgenden Code verwendet, um dies zu erreichen:
Hier wird die Dokumentklasse
preview
verwendet, die ein Bild zurückgibt, dessen Größe an den Inhalt des Dokuments angepasst ist, dh nur an die Tabelle. Zurtabular
Darstellung der Daten wird nur eine Umgebung verwendet. Es gibt horizontale und vertikale Balken zwischen den Zellen, aber es ist sehr einfach, dies zu ändern. In der Variablen werdentab
die Daten für jede Zeile verarbeitet und in eine Zeichenfolge konvertiert. Beachten Sie, dass Sie das Ausgabeformat an dieser Position angeben müssen. Ich habe es%d
so eingestellt, dass alles in ganze Zahlen umgewandelt wird.Wenn Sie die Tabelle direkt in einer Latexquelle verwenden möchten, müssen Sie
documentclass
und\begin{document}
sowie\end{document}
die Variablen vonstart
und entfernenend
. Schließlich wird alles in einer Latexquelle zusammengefasst, die dann als auf der Festplatte gespeichert wirdtable.tex
. Wenn Sie nur das Bild am Ende haben möchten, wird die resultierende Datei zu kompilierttable.pdf
.So sieht die Ausgabe aus. Aber wie gesagt, es ist sehr einfach, das Aussehen zu ändern, da es LaTeX ist :)
Hier ist ein weiteres Beispiel mit einer großen Matrix (14 x 14), die mit Zufallszahlen zwischen 0 und 100 gefüllt ist:
quelle
Sie können die
table
Funktion von verwendenmatplot
, um die einfache Tabelle zu zeichnen. Außerdem können Sie den Plot als PNG speichern. Unten finden Sie den einfachen Code für Ihre Anforderungen:Die Größe des Diagramms oder Bildes kann durch Ändern der
figsize
Parameter in der Zeile angepasst werden :plt.figure(figsize=(x,y))
Für ein besseres Erscheinungsbild kann es wie folgt geändert werden:
quelle
fig = plt.figure(figsize = x.shape)
Vielleicht hilft das:
quelle