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.
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 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()
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))
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()
Recommended Posts