Seaborn - Figurenästhetik
Die Visualisierung von Daten ist ein Schritt, und die weitere Verbesserung der Visualisierung der visualisierten Daten ist ein weiterer Schritt. Die Visualisierung spielt eine wichtige Rolle bei der Vermittlung quantitativer Erkenntnisse an ein Publikum, um dessen Aufmerksamkeit zu erregen.
Ästhetik bedeutet eine Reihe von Prinzipien, die sich mit der Natur und der Wertschätzung von Schönheit befassen, insbesondere in der Kunst. Visualisierung ist eine Kunst, Daten auf effektive und einfachste Weise darzustellen.
Die Matplotlib-Bibliothek unterstützt die Anpassung in hohem Maße. Wenn Sie jedoch wissen, welche Einstellungen angepasst werden müssen, um ein attraktives und vorweggenommenes Diagramm zu erzielen, sollten Sie sich dessen bewusst sein, um sie nutzen zu können. Im Gegensatz zu Matplotlib bietet Seaborn zahlreiche benutzerdefinierte Themen und eine übergeordnete Benutzeroberfläche zum Anpassen und Steuern des Aussehens von Matplotlib-Figuren.
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()
plt.show()
So sieht ein Plot mit den Standardeinstellungen Matplotlib aus -
Verwenden Sie die Option, um dasselbe Diagramm in die Standardeinstellungen von Seaborn zu ändern set() Funktion -
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()
Ausgabe
Die obigen beiden Abbildungen zeigen den Unterschied zwischen den Standardplots Matplotlib und Seaborn. Die Darstellung der Daten ist gleich, aber der Darstellungsstil variiert in beiden Fällen.
Grundsätzlich teilt Seaborn die Matplotlib-Parameter in zwei Gruppen auf
- Plotstile
- Handlungsskala
Seaborn Figurenstile
Die Schnittstelle zum Bearbeiten der Stile ist set_style(). Mit dieser Funktion können Sie das Thema des Plots festlegen. Nach der neuesten aktualisierten Version sind unten die fünf verfügbaren Themen aufgeführt.
- Darkgrid
- Whitegrid
- Dark
- White
- Ticks
Versuchen wir, ein Thema aus der oben genannten Liste anzuwenden. Das Standardthema des Plots istdarkgrid was wir im vorherigen Beispiel gesehen haben.
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()
Ausgabe
Der Unterschied zwischen den beiden obigen Darstellungen ist die Hintergrundfarbe
Achsen Stacheln entfernen
In den Themen Weiß und Häkchen können wir die Stacheln der oberen und rechten Achse mit dem entfernen despine() Funktion.
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()
Ausgabe
In den regulären Plots verwenden wir nur die linke und die untere Achse. Verwendung derdespine() Funktion können wir die unnötigen Stacheln der rechten und oberen Achse vermeiden, die in Matplotlib nicht unterstützt werden.
Elemente überschreiben
Wenn Sie die Seaborn-Stile anpassen möchten, können Sie ein Wörterbuch mit Parametern an die übergeben set_style() Funktion. Verfügbare Parameter werden mit angezeigtaxes_style() Funktion.
Beispiel
import seaborn as sb
print sb.axes_style
Ausgabe
{'axes.axisbelow' : False,
'axes.edgecolor' : 'white',
'axes.facecolor' : '#EAEAF2',
'axes.grid' : True,
'axes.labelcolor' : '.15',
'axes.linewidth' : 0.0,
'figure.facecolor' : 'white',
'font.family' : [u'sans-serif'],
'font.sans-serif' : [u'Arial', u'Liberation
Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color' : 'white',
'grid.linestyle' : u'-',
'image.cmap' : u'Greys',
'legend.frameon' : False,
'legend.numpoints' : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color' : '.15',
'xtick.color' : '.15',
'xtick.direction' : u'out',
'xtick.major.size' : 0.0,
'xtick.minor.size' : 0.0,
'ytick.color' : '.15',
'ytick.direction' : u'out',
'ytick.major.size' : 0.0,
'ytick.minor.size' : 0.0}
Durch Ändern der Werte eines Parameters wird der Plotstil geändert.
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Ausgabe
Skalieren von Plotelementen
Wir haben auch die Kontrolle über die Plotelemente und können den Maßstab des Plots mit dem steuern set_context()Funktion. Wir haben vier voreingestellte Vorlagen für Kontexte, basierend auf der relativen Größe. Die Kontexte werden wie folgt benannt
- Paper
- Notebook
- Talk
- Poster
Standardmäßig ist der Kontext auf Notizbuch eingestellt. und wurde in den obigen Darstellungen verwendet.
Beispiel
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Ausgabe
Die Ausgabegröße des tatsächlichen Diagramms ist im Vergleich zu den obigen Diagrammen größer.
Note - Aufgrund der Skalierung von Bildern auf unserer Webseite können Sie den tatsächlichen Unterschied in unseren Beispieldiagrammen übersehen.