[PYTHON] So entfernen Sie verstümmelte Zeichen im Matplotlib-Ausgabebild

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

So entfernen Sie verstümmelte Zeichen im Matplotlib-Ausgabebild
Das japanische Zeichen verstümmelte die Eliminierung von Matplotlib und NetworkX der Python-Bibliothek
So unterdrücken Sie Anzeigefehler in matplotlib
So passen Sie den Bildkontrast in Python an
Beseitigen Sie verstümmelte japanische Zeichen in Matplotlib-Diagrammen mit Cloud Pak for Data Notebook
Wie man mit verstümmelten Charakteren in json von Django REST Framework umgeht
Verwendung der Python-Bildbibliothek in der Python3-Serie
So löschen Sie die von Python ausgegebenen Zeichen
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So geben Sie "Ketsumaimo" standardmäßig in Python aus
Wie benutzt man Matplotlib?
So wenden Sie mit matplotlib Marker nur auf bestimmte Daten an
So erstellen Sie einen Bild-Uploader mit Bottle (Python)
So fügen Sie dem Balkendiagramm von matplotlib einen Farbbalken hinzu
So übergeben Sie die Backend-Einstellung von matplotlib mit einer Umgebungsvariablen
[Python] So geben Sie Listenwerte der Reihe nach aus
Wie man in Python entwickelt
Beseitigen Sie verstümmelte japanische Zeichen in JSON-Daten, die von der API erfasst wurden.
Seaborn, matplotlib Beseitigung verstümmelter Zeichen in der virtuellen Umgebung von Windows 10, Anaconda
So geben Sie ein Dokument im PDF-Format mit Sphinx aus
So stellen Sie die Ausgabeauflösung für jeden Keyframe in Blender ein
[Python] Wie man PCA mit Python macht
Umgang mit Sitzungen in SQLAlchemy
Verwendung von Klassen in Theano
Wie man nüchtern mit Pandas schreibt
So sammeln Sie Bilder in Python
[Einführung in Python] So geben Sie eine Zeichenfolge in einer Print-Anweisung aus
So aktualisieren Sie Spyder in Anaconda
Verwendung von SQLite in Python
Löse verstümmelte japanische Zeichen in matplotlib von Jupyter Notebook auf Docker
Wie man Matplotlib auf Heroku ausführt
So konvertieren Sie 0,5 in 1056964608 auf einmal
Wie man CSS in Django reflektiert
Wie man Prozesse in großen Mengen abbricht
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
So schreiben Sie ein Docker-Basis-Image
So überschreiben Sie die Ausgabe auf die Konsole
Zwei Möglichkeiten, mit matplotlib mehrere Grafiken in einem Bild anzuzeigen
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Umgang mit Japanisch mit Python
So melden Sie sich bei Docker + NGINX an
So rufen Sie PyTorch in Julia an
[Kleine Geschichte] So speichern Sie Matplotlib-Diagramme in einem Stapel mit Jupyter
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Wie man mit matplotlib mehrere Figuren betitelt
Dynamisches Definieren von Variablen in Python
Geben Sie Farbzeichen mit Python zu hübsch aus
So konvertieren Sie csv in tsv in CLI
So löschen Sie abgelaufene Sitzungen in Django
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Verwendung von Google Test in C-Sprache
So implementieren Sie einen verschachtelten Serializer mit drf-flex-Feldern
So arbeiten Sie mit BigQuery in Python
So führen Sie Befehle mit einem Jupyter-Notebook aus
Wie man in GitPython '--gags fetch --tags' macht