Seaborn - Figür Estetiği
Verileri görselleştirmek bir adımdır ve görselleştirilmiş verileri daha hoş hale getirmek başka bir adımdır. Görselleştirme, nicel içgörüleri bir izleyiciye dikkatlerini çekmek için iletmede hayati bir rol oynar.
Estetik, özellikle sanatta güzelliğin doğası ve takdiriyle ilgili bir dizi ilke anlamına gelir. Görselleştirme, verileri etkili ve mümkün olan en kolay şekilde temsil etme sanatıdır.
Matplotlib kitaplığı kişiselleştirmeyi büyük ölçüde destekler, ancak çekici ve beklenen bir arsa elde etmek için hangi ayarların değiştirileceğini bilmek, onu kullanmak için dikkat edilmesi gereken şeydir. Matplotlib'den farklı olarak Seaborn, Matplotlib figürlerinin görünümünü özelleştirmek ve kontrol etmek için özelleştirilmiş temalar ve üst düzey bir arayüzle birlikte gelir.
Misal
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()
Matplotlib varsayılanları ile bir arsa böyle görünür -
Aynı planı Seaborn varsayılanlarına değiştirmek için, set() işlev -
Misal
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()
Çıktı
Yukarıdaki iki şekil, varsayılan Matplotlib ve Seaborn planlarındaki farkı göstermektedir. Verilerin temsili aynıdır, ancak temsil tarzı her ikisinde de değişiklik gösterir.
Temel olarak Seaborn, Matplotlib parametrelerini iki gruba ayırıyor−
- Arsa stilleri
- Arsa ölçeği
Seaborn Şekil Stilleri
Stilleri değiştirmek için arayüz set_style(). Bu işlevi kullanarak arsa temasını ayarlayabilirsiniz. En son güncellenen sürüme göre, aşağıda mevcut beş tema bulunmaktadır.
- Darkgrid
- Whitegrid
- Dark
- White
- Ticks
Yukarıda bahsedilen listeden bir tema uygulamayı deneyelim. Arsa varsayılan teması olacakdarkgrid önceki örnekte gördüğümüz.
Misal
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()
Çıktı
Yukarıdaki iki grafik arasındaki fark arka plan rengidir
Eksen Dikenlerini Çıkarma
Beyaz ve işaretli temalarda, üst ve sağ eksen dikenlerini kullanarak despine() işlevi.
Misal
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()
Çıktı
Normal grafiklerde sadece sol ve alt eksenleri kullanıyoruz. Kullanmakdespine() Matplotlib'de desteklenmeyen gereksiz sağ ve üst eksen dikenlerinden kaçınabiliriz.
Öğeleri Geçersiz Kılmak
Seaborn stillerini özelleştirmek istiyorsanız, bir parametre sözlüğünü set_style() işlevi. Mevcut parametreler kullanılarak görüntüleniraxes_style() işlevi.
Misal
import seaborn as sb
print sb.axes_style
Çıktı
{'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}
Herhangi bir parametrenin değerlerini değiştirmek, çizim stilini değiştirecektir.
Misal
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()
Çıktı
Çizim Öğelerini Ölçeklendirme
Ayrıca, arsa öğeleri üzerinde kontrolümüz var ve arsa ölçeğini kullanarak set_context()işlevi. Bağlamlar için göreceli boyuta göre önceden ayarlanmış dört şablonumuz var, bağlamlar aşağıdaki gibi adlandırılıyor
- Paper
- Notebook
- Talk
- Poster
Varsayılan olarak, bağlam not defterine ayarlanmıştır; ve yukarıdaki arazilerde kullanılmıştır.
Misal
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()
Çıktı
Gerçek grafiğin çıktı boyutu, yukarıdaki grafiklerle karşılaştırıldığında boyut olarak daha büyüktür.
Note - Web sayfamızdaki resimlerin ölçeklendirilmesi nedeniyle, örnek grafiklerimizdeki gerçek farkı gözden kaçırabilirsiniz.