Sie können Diagramme zeichnen, die in Excel mit Python gezeichnet werden können.
Ein Paket namens matplotlib bietet diese Funktion.
Ist die Bedeutung des Zeichnens das, was in Excel in der Skriptsprache hauptsächlich für die Automatisierung gezeichnet werden kann?
Es kann für Anwendungen verwendet werden, z. B. für die regelmäßige Erfassung von Daten, die täglich aktualisiert werden, für die grafische Darstellung und für die Automatisierung des Sendens des Bildes per E-Mail.
Hier als Beispiel vom Ministerium für Bildung, Kultur, Sport, Wissenschaft und Technologie veröffentlichte Daten zum Übergang der Studiengebühren für private Privatuniversitäten 002.htm) verwendet wird.
Speichern Sie es wie unten gezeigt als data.csv-Datei. (Es wurde ordnungsgemäß formatiert, z. B. durch Ersetzen von Leerzeichen durch vim.)
Jahr,Studiengebühr (Yen),Aufnahmegebühr (Yen),Prüfungsgebühr (Yen),Studiengebühr (Yen),Aufnahmegebühr (Yen),Prüfungsgebühr (Yen),Studiengebühr (doppelt),Eintrittsgebühr (doppelt),Prüfungsgebühr (doppelt)
1975,36000,50000,5000,182677,95584,9647,5.1,1.9,1.9
1976,96000,50000,7500,221844,121888,11452,2.3,2.4,1.5
1977,96000,60000,7500,248066,135205,13084,2.6,2.3,1.7
1978,144000,60000,10000,286568,157019,14722,2,2.6,1.5
...
Der tatsächliche Datenteil jeder nationalen und privaten Studiengebühr wird von Python gelesen, aufgelistet, angepasst, z. B. Beschriftungs- und Präzedenzanzeigeeinstellung, und schließlich in graph.png geschrieben.
from matplotlib import pyplot
with open("data.csv", "r", encoding="shift-jis") as fp:
x, xlabels = [], []
y1, y2 = [], []
for linenum, line in enumerate(fp):
if linenum is 0:
continue
x.append(linenum)
xlabels.append(line.split(",")[0])
y1.append(line.split(",")[1])
y2.append(line.split(",")[4])
#Einstellung der Beschriftung der x-Achse
pyplot.xticks(x, xlabels, rotation=90)
#Erweiterter Anzeigebereich für Beschriftungen auf der x-Achse
pyplot.subplots_adjust(bottom=0.2)
#Zeichnen Sie mit einer durchgezogenen Linie aus Cyan
pyplot.plot(x, y1, 'c-', label="Nationaluniversität")
#Zeichnen Sie mit einer durchgezogenen Linie von Magenda
pyplot.plot(x, y2, 'm-', label="private Universität")
# grid, title,Legendenanzeige
pyplot.title("Änderungen der Studiengebühren usw. an nationalen und privaten Universitäten")
pyplot.legend()
pyplot.grid()
#pyplot.show()
pyplot.savefig("graph.png ")
Das Ergebnis ist in der folgenden Abbildung dargestellt.
Sogenannter Tofu ... Dies liegt daran, dass matplotlib keine japanischen Schriftarten hat.
Es ist ein bisschen alt und Python2-Informationen, aber [Wie man Helvetica als serifenlose Standardschriftart in Matplotlib festlegt](http://blog.olgabotvinnik.com/blog/2012/11/15/2012-11-15- Wie man helvetica als Standard-serifenlose Schriftart einstellt /) erklärt, wie man eine Schriftart hinzufügt. [^ 1]
Sie können eine Schriftart, die Japanisch unterstützt, aus dem System ziehen, aber ich konnte die ttf-Schriftart auf meinem Mac nicht finden, also IPA-Schriftart /download.html#en).
Entpacken Sie die heruntergeladene Zip-Datei und kopieren Sie sie wie folgt. Bitte beachten Sie, dass das Kopierziel von der Umgebung abhängt.
$ cp ~/Downloads/IPAfont00303/*.ttf /usr/local/lib/python3.4/site-packages/matplotlib/mpl-data/fonts/ttf/
Kopieren Sie die Konfigurationsdatei unter Home und bearbeiten Sie sie.
$ cp /usr/local/lib/python3.4/site-packages/matplotlib/mpl-data/matplotlibrc ~/.matplotlib/
$ vi ~/.matplotlib/matplotlibrc
Legen Sie den Schriftnamen in font.family fest.
Bitte beachten Sie, dass Sie hier nicht den Namen der Schriftartdatei angeben.
Überprüfen Sie den Schriftartnamen, den Sie verwenden möchten, z. B. "ipa.ttf öffnen", und legen Sie ihn fest.
matplotlibrc
# The font.size property is the default font size for text, given in pts.
# 12pt is the standard value.
#
font.family : IPAmincho
Löschen Sie die zwischengespeicherten Daten.
$ rm ~/.matplotlib/fontList.py3k.cache
Wenn Sie nun das nächste Mal matplotlib importieren, werden die Cache-Daten automatisch generiert und können auf Japanisch angezeigt werden.
Wenn Sie das Python-Skript erneut ausführen, können Sie sehen, dass der Tofu wie unten gezeigt entfernt wurde.
[^ 1]: matplotlib Standardschrift ist nicht schön! Und wütend
Recommended Posts