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.