[PYTHON] Japanische Einstellungen für Matplotlib- und Seaborn-Achsen

Wenn Sie vorerst ein Diagramm in Python zeichnen möchten, verwenden Sie wahrscheinlich matplotlib. Es gibt jedoch zu viele Konfigurations-APIs, um zu entscheiden, welche verwendet werden soll, und die Standardfarbpalette scheint unbefriedigend zu sein. Seaborn kann einige dieser Herausforderungen lösen. Der folgende Artikel ist hilfreich für bestimmte Beispiele.

Bei der reinen numerischen Berechnung sind die vertikalen und horizontalen Achsen häufig Zahlen und Datumsangaben. Abhängig vom Datensatz kann jedoch Japanisch behandelt werden. Schriftarteneinstellungen sind erforderlich, um Japanisch für Beschriftungen und Text zu verwenden. Zu diesem Thema können mehrere Artikel hilfreich sein.

Wie ist Ihre Umgebung? Es gibt viele Dinge, die ich denke, deshalb habe ich es möglich gemacht, ein Bestätigungsnotizbuch mit nbviewer anzuzeigen. Die Umgebung basiert auf Dockers jupyter / datascience-notebook und [IPA font](http: //ipafont.ipa). go.jp/) wird platziert. Das Prinzip gilt auch für andere Schriftarten und Plattformen.

matplotlib.font_manager verfügt über die Klassen "FontManager" und "FontProperties". Es scheint, dass es am kürzesten ist, diese zu kombinieren und die Liste der gültigen Schriftarten auf der aktuellen Plattform zu überprüfen. Wenn die japanische Schriftart, auf die Sie abzielen möchten, gültig ist, aktivieren Sie sie global mit set () von Seaborn.

Liste der gültigen Schriftarten

Rufen Sie über * font_manager * eine Liste der Schriftarten ab, füllen Sie sie in einen Datenrahmen und führen Sie dann eine bedingte Suche durch.

Modulimport


import matplotlib.font_manager as fm
import pandas as pd

Liste der Schriftarten


fonts = fm.findSystemFonts()
# len(fonts) =>Es sollten mehr als 100 sein

Packen in Datenrahmen


l = []
for f in fonts:
    font = fm.FontProperties(fname=f)
    l.append((f, font.get_name(), font.get_family()))
df = pd.DataFrame(l, columns=['path', 'name', 'family'])

Bestätigung, dass die IPA-Schriftart vorhanden ist


df[df['path'].apply(lambda s: 'IPA' in s)]

Sie sollten eine Ausgabe wie diese erhalten.

index path name family
82 /usr/share/fonts/truetype/IPAfont00303/ipagp.ttf IPAPGothic [sans-serif]
108 /usr/share/fonts/truetype/IPAfont00303/ipamp.ttf IPAPMincho [sans-serif]
138 /usr/share/fonts/truetype/IPAfont00303/ipam.ttf IPAMincho [sans-serif]
236 /usr/share/fonts/truetype/IPAfont00303/ipag.ttf IPAGothic [sans-serif]

Die Schriftartdatei wurde vorab in den Docker-Container kopiert. Laden Sie ZIP-Dateien manuell herunter und extrahieren Sie sie.

Kopie der Schriftdatei


$ docker exec notebook cp -r /dataset/IPAfont00303 /usr/share/fonts/truetype

Zeichnen eines Diagramms

Zeichnen wir ein Diagramm mit den APIs matplotlib und Seaborn.

Modulimport


%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns

Die vertikale Achsenbeschriftung wird mit * ylabel () * festgelegt. Diese Funktion verwendet * text () * als optionales Schlüsselwortargument. Wenn Sie matplotlib.pyplot.text überprüfen, können Sie sehen, dass es mit dem Wörterbuch * fontdict * überschrieben werden kann.

Legen Sie die japanische Schriftart für die Beschriftung der vertikalen Achse fest


plt.plot([1,2,3,4])
plt.ylabel('Numerischer Wert', fontdict={'family': 'IPAPGothic'})
plt.show()

graph1.png

Zeichnen Sie dann die Grafik in Seaborn. Verwenden Sie seaborn.axes_style für den Achsenstil. Diese Funktion kann auch mit der Anweisung with verwendet werden. Das heißt, Sie können den Stil für jedes Diagramm festlegen. In der Realität ist es jedoch wahrscheinlicher, dass Sie denselben Stil in einem Notizbuch [seaborn.set] verwenden (https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn). Sie werden .set) verwenden. Das, was Sie im Attribut * font * angeben, wird an die Achseneinstellungen weitergegeben.

set()Rufen Sie an und zeichnen Sie mit Seaborn


data = pd.DataFrame([1, 2, 3, 4], columns=['Numerischer Wert'])
sns.set(font=['IPAPGothic'])
sns.jointplot(x='Numerischer Wert', y='Numerischer Wert', data=data, xlim=(0, 5), ylim=(0, 5))

graph2.png

Ich denke, es gibt gute und schlechte Dinge, aber die Seaborn-Einstellung überschreibt auch die Matplotlib-Einstellung. Wenn Sie aus matplotlib im selben Notizbuch wie zuvor zeichnen, jedoch keine Schriftart festgelegt ist, wird die japanische Achse normal angezeigt. Dies kann nützlich sein, wenn Sie die Stile vorhandener Diagramme gleichzeitig ändern möchten.

set()Zeichnen Sie nach dem Aufruf mit matplotlib


plt.plot([1,2,3,4])
plt.ylabel('Numerischer Wert')
plt.show()

graph3.png

Recommended Posts

Japanische Einstellungen für Matplotlib- und Seaborn-Achsen
Japanische Anzeige von Matplotlib, Seaborn
Verwenden Sie xticks () für pyplot und set_xticklabels () für Achsen.
Über japanische Schriften von matplotlib (für Mac)
matplotlib Grundlagen / Unterschied zwischen Feigen und Achsen
(Mac) Anzeigen auf Japanisch mit Matplotlib und Seaborn bei MacOS Sierra
Zeichnen Sie mehrere Diagramme mit Matplotlib-Figuren und -Achsen
[Python / Chrome] Grundeinstellungen und Operationen zum Scraping
Japanisch mit Matplotlib
Grundeinstellungen für die Verwendung von Python3.8 und pip unter CentOS8
(Für diejenigen, die mit Matplotlib nicht vertraut sind) Tipps zum Zeichnen von Diagrammen mit Seaborn
Spacemacs-Einstellungen (für Anfänger)
Goland- und Docker-Einstellungen
matplotlib dies und das
Stellen Sie die Achsen mit matplotlib ein
Proxy-Einstellungen für urllib.request
Ubuntu 19.10 Eoan Ermines japanische / japanische Gebietsschemaumgebung und Zeitzoneneinstellungen
Das japanische Zeichen verstümmelte die Eliminierung von Matplotlib und NetworkX der Python-Bibliothek
4 Techniken zum Erstellen von Diagrammen für Papiere und Präsentationsmaterialien mit matplotlib