Ana içeriğe geç

Seaborn Barplot: Kapsamlı Bir Rehber

Python'da Seaborn çubuk grafikleri oluşturmayı ve özelleştirmeyi öğrenin. Temel grafiklerden gelişmiş özelliklere kadar kategorik veri ilişkilerini görselleştirmek için gerekli tekniklerde ustalaşın.
· 10 dk. oku

Yapay Zeka ile Keşfedin

Veri görselleştirme, karmaşık bilgileri net ve uygulanabilir içgörülere dönüştürür. Seaborn çubuk grafikleri, kategorik verileri zarif ve istatistiksel grafiklerle sunmada başarılıdır. Kütüphane, Matplotlib’in esnekliğini pandas’ın gücüyle birleştirir; bu da onu hem hızlı analizler hem de yayına hazır görselleştirmeler için ideal kılar.

Seaborn çubuk grafikleri, temel karşılaştırmalardan gelişmiş istatistiksel gösterimlere kadar veri analizi için gerekli özellikleri sunar. Bölgelere göre satış metriklerini karşılaştırma, anket yanıtlarını analiz etme ve deney sonuçlarını görselleştirme gibi yaygın görevleri kolaylıkla ele alırlar. 

Kütüphanenin sezgisel söz dizimi ve yerleşik istatistiksel işlevleri onu hem yeni başlayanlar hem de deneyimli veri uzmanları için değerli kılar.

Bu yazıda, Seaborn çubuk grafiğinin temellerine, kod örnekleriyle temel grafikler oluşturmaya, özelleştirmeyle grafikleri geliştirmeye, gelişmiş özellikleri uygulamaya ve pratik kullanım alanlarını keşfetmeye bakacağız.

Seaborn ile veri görselleştirme hakkında daha fazlasını öğrenmek için Seaborn ile Veri Görselleştirmeye Giriş kursumuza göz atın.

Seaborn çubuk grafiği Temelleri

Çubuk grafiklere girmeden önce, Seaborn’un bazı temel kavramlarına, çubuk grafikler için avantajlarına ve kodlama ortamının nasıl kurulacağına bakalım.

Seaborn nedir?

Seaborn, Matplotlib üzerine inşa edilmiş bir Python istatistiksel veri görselleştirme kütüphanesidir. Az kodla bilgilendirici ve çekici istatistiksel grafikler üretme konusunda uzmanlaşmıştır. Kütüphane, pandas DataFrame’leriyle yakından entegre olduğundan veri analizi iş akışları için özellikle etkilidir.

Birçok stil ayrıntısını otomatik olarak ele alırken çekici grafikler çizmek için üst düzey bir arayüz sağlar.

Kütüphane üç temel konuda öne çıkar:

  • pandas DataFrame’lerle sorunsuzca bütünleşerek veri manipülasyonunu kolaylaştırır
  • Yerleşik istatistiksel işlevlerle gelir; ayrı hesaplamalara gerek bırakmaz
  • Varsayılan olarak profesyonel görünümlü temalar ve renk paletleri uygular

Örneğin, Matplotlib temel bir istatistiksel görselleştirme için birden çok kod satırı gerektirirken, Seaborn aynı işi tek bir fonksiyon çağrısıyla yapabilir. 

Özellikle çubuk grafiklerde, Seaborn otomatik ortalama hesaplama, güven aralıkları ve gelişmiş kategorik değişken işleme gibi güçlü özellikler ekler — bu yetenekler düz Matplotlib’de kayda değer ek kod gerektirir.

Neden çubuk grafik kullanılır?

Çubuk grafikler, uzunluğu sayısal bir değeri temsil eden dikey veya yatay çubuklarla kategorik verileri sunar. Bu, farklı gruplar veya kategoriler arasındaki değerleri karşılaştırmak için onları ideal kılar. Veri analizinde, çubuk grafikler anket sonuçlarını, pazar paylarını, performans metriklerini ve satış dağılımlarını görselleştirmeye yardımcı olur.

Başlıca avantajlar şunlardır:

  • Kategoriler arasında miktarların net karşılaştırması
  • Yerleşik istatistiksel özellikler (ortalama, medyan, güven aralıkları)
  • Gruplanmış verilerin etkili temsili
  • Basit ama bilgilendirici görsel öğeler
  • Profesyonel sunumlar için kolay özelleştirme seçenekleri

Hızlı kurulum

Seaborn ile çubuk grafikler oluşturmaya başlamak için Python ortamımızı kurmamız gerekecek. İşte nasıl başlayacağınız:

Önce, aşağıda gösterildiği gibi gerekli paketleri yükleyelim:

pip install seaborn pandas numpy

Artık tüm görselleştirme araçlarımız kullanıma hazır. Aşağıda gösterildiği gibi ihtiyaç duyacağımız kütüphaneleri içe aktaralım:

# For creating statistical visualizations
import seaborn as sns

# For data manipulation and analysis
import pandas as pd

# For numerical operations
import numpy as np

Grafiklerimizi bazı stil ayarlarıyla daha iyi gösterebiliriz, şöyle:

# Clean white style
sns.set_style("white")

white stili ızgara çizgilerini kaldırır ve grafikleri çoğu ekranda iyi gösterecektir. Sonraki bölümlerde çubuk grafikler oluşturmayı ve bunları geliştirmeyi inceleyeceğiz.

Temel Seaborn Çubuk Grafikleri Oluşturma

Çubuk grafik, kategorik ve sayısal değişkenler arasındaki ilişkileri görselleştirmek için idealdir. Nokta tahminlerini (ortalama veya medyan gibi) ve bu tahminlerin etrafındaki belirsizliği hata çubuklarıyla gösterir. Haydi seaborn çubuk grafiğinin temel söz dizimine bakalım.

Söz dizimi ve parametreler

Seaborn’daki sns.barplot() işlevi, istatistiksel çubuk grafikler oluşturmanın yalın bir yolunu sunar. .barplot() işlevinin temel yapısı aşağıda gösterildiği gibidir:

sns.barplot(
    data=None,      # Your DataFrame
    x=None,         # Category variable
    y=None,         # Numeric variable
    estimator='mean',  # Statistical function to estimate
    errorbar=('ci', 95),  # Error bars type and level
    orient=None     # "v" for vertical, "h" for horizontal
)

Bu parametreler, hangi verileri göstereceğimize ve nasıl göstereceğimize dair kontrol sağlar. data parametresi DataFrame’inizi alırken, x ve y kategoriler ve değerler için hangi sütunların kullanılacağını belirtir. estimator hangi istatistiksel işlevin uygulanacağını seçmenize (varsayılan olarak ortalama) olanak tanır ve errorbar belirsizliğin nasıl gösterileceğini kontrol eder. Ayrıca orient parametresiyle dikey ve yatay yönelim arasında geçiş yapabilirsiniz.

Şimdi, restoran hesapları ve bahşişler hakkında bilgi içeren Seaborn’un yerleşik tips veri kümesini kullanarak etkili çubuk grafiklerin nasıl oluşturulacağına bakalım.

Örnek: Basit bir veri kümesini görselleştirme

Haftanın farklı günlerindeki bahşiş davranışına tips veri kümesini kullanarak bakacağız. Bu veri kümesi; haftanın günü, toplam hesap tutarı, bahşiş miktarı ve diğer değişkenler hakkında bilgi içerir.

# Import required libraries and load dataset
import seaborn as sns
tips = sns.load_dataset("tips")

# Create a basic barplot showing average tips by day
sns.barplot(data=tips, x="day", y="tip")

Çıktı:

Kodumuz, her çubuğun haftanın farklı bir günü için ortalama bahşiş miktarını temsil ettiği yukarıdaki görselleştirmeyi oluşturdu. Her çubuğun yüksekliği ortalama bahşiş değerini gösterirken, siyah çizgiler (hata çubukları) %95 güven aralığını belirtir — bu da hem tipik bahşiş miktarına hem de varyasyonuna dair içgörü verir.

Ayrıca farklı yemek zamanlarındaki bahşiş örüntülerini de inceleyebiliriz:

# Create a barplot showing average tips by time of day
sns.barplot(data=tips, x="time", y="tip")

Çıktı:

Bu grafik, öğle ve akşam servisi arasındaki bahşiş davranışı farkını ortaya koyar. Her çubuğun yüksekliği o günün saat dilimi için ortalama bahşiş miktarını temsil eder; hata çubukları ise bahşiş davranışındaki değişkenliği gösterir. Bu tür görselleştirme, örüntüleri fark etmeyi ve grupları bir bakışta karşılaştırmayı kolaylaştırır.

Bu temel çubuk grafikler, daha karmaşık görselleştirmeler için bir temel sağlar. Bir sonraki bölümde, daha bilgilendirici ve görsel olarak daha çekici görselleştirmeler oluşturmak için bu grafikleri renkler, gruplaymalar ve diğer özelleştirmelerle nasıl geliştireceğimizi göreceğiz.

Özelleştirmelerle Çubuk Grafikleri Geliştirme

Çubuk grafiklerimize görsel iyileştirmeler eklemek, verilerimizi daha ilgi çekici ve anlaşılması daha kolay hale getirebilir. tips veri kümesini kullanarak çubuk grafikleri özelleştirmenin farklı yollarına bakalım.

Çubuk grafiklere renk ekleme

Seaborn, çubuk grafiklerinize renk katmanın birkaç yolunu sunar; bu da onları daha çekici ve bilgilendirici yapar. Tüm çubuklar için tek bir renk kullanabilir veya renk kodlu gruplar oluşturabiliriz,

color parametresi tüm çubuklar için tek bir rengi ayarlarken, palette verilerinizde birden çok grup olduğunda bir renk şeması belirtmenizi sağlar. Seaborn, farklı veri türleri için iyi çalışan birçok yerleşik renk paletiyle gelir.

Aşağıda gösterildiği gibi color parametresini kullanarak tek renkli basit bir çubuk grafik oluşturabiliriz:

# Load the tips dataset if you haven't already
import seaborn as sns
tips = sns.load_dataset("tips")

# Single color barplot
sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Çıktı:

Aşağıda gösterildiği gibi palette parametresini kullanarak çok renkli bir çubuk grafik oluşturabiliriz:

# Load the tips dataset if you haven't already
import seaborn as sns
tips = sns.load_dataset("tips")

# Using a different color palette
sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Çıktı:

Birden çok sütunla Seaborn çubuk grafiği

Seaborn çubuk grafiklerinin en güçlü özelliklerinden biri, hue parametresini kullanarak birden çok değişken arasındaki ilişkileri gösterebilmesidir. Bu, karşılaştırmaları kolaylaştıran gruplandırılmış çubuklar oluşturur.

Aşağıda gösterildiği gibi hue parametresiyle hem günlere hem de yemek zamanlarına göre bahşişleri karşılaştıralım:

# Load the tips dataset if you haven't already
import seaborn as sns
tips = sns.load_dataset("tips")

# Create a grouped barplot showing tips by day and time
sns.barplot(
    data=tips,
    x="day",
    y="tip",
    hue="time"
)

Çıktı:

Yukarıdaki grafik, her gün için iki çubuk — biri öğle yemeği, diğeri akşam yemeği — gösterir. Bu gruplama, bahşişlerin günlere göre nasıl değiştiğini görmemizi sağlamakla kalmaz, aynı zamanda yemek zamanları arasındaki farkları da ortaya koyar.

Seaborn ile istiflenmiş çubuk grafik oluşturma

İstiflenmiş çubuk grafikler, farklı kategorilerin bileşimini göstermek için mükemmeldir. Seaborn’un doğrudan bir istiflenmiş çubuk grafik işlevi olmasa da, etkili istifli görselleştirmeler oluşturmak için Matplotlib ile birleştirebiliriz. 

Bu yaklaşım, Seaborn’un istatistiksel işlevselliğinden yararlanırken Matplotlib’in istifleme yeteneklerini kullanır. Örnek olarak, tips veri kümesinde, farklı günler boyunca sigara içenler ve içmeyenler arasında bahşişlerin nasıl dağıldığına bakalım.

Görselleştirmemiz için gerekli kütüphaneleri içe aktararak başlayalım:

# Import required libraries
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

Şimdi restoran bahşiş bilgilerini içeren veri kümemizi yükleyeceğiz:

# Load the tips dataset
tips = sns.load_dataset("tips")

Görselleştirmemiz için uygun boyutlarda bir figür oluşturacağız:

# Create figure and axis
plt.figure(figsize=(10, 4))

Sırada, farklı günlerde sigara içenler ve içmeyenler için ortalama bahşişleri hesaplayacağız:

# Calculate values for stacking
# Filter smokers, group by day and get mean tips
smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean()
 
# Filter non-smokers, group by day and get mean tips     
non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Sonrasında, istifli çubuklarımız için temel parametreleri aşağıda gösterildiği gibi ayarlayacağız:

# Plot the stacked bars using matplotlib
days = smoker_means.index
width = 0.8

Şimdi, sigara içmeyenler için istifli çubuklarımızın alt katmanını oluşturacağız:

# Create bottom bars (non-smokers)
plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

Sigara içenlerin bahşişleri için üst katmanı ekleyeceğiz:

# Create top bars (smokers)
plt.bar(days, smoker_means, width, bottom=non_smoker_means, 
        label='Smoker', color=sns.color_palette()[1])

Seaborn stilini kullanarak ızgara çizgileri olmadan sade bir stil ayarlayalım:

# Add Seaborn styling
sns.set_style("white")

Son olarak, tamamlanan istifli çubuk grafiğimizi görüntüleyeceğiz:

# Show the plot
plt.show()

Çıktı:

Ortaya çıkan grafik, her gün için sigara içmeyenlerin bahşişlerinin üzerine istiflenmiş sigara içenlerin ortalama bahşişlerini gösterir; böylece hem toplam bahşişleri hem de her grubun katkısını karşılaştırmayı kolaylaştırır.

Bu geçici çözüm bize şunları sağlar:

  • Seaborn’un çekici görsel stilini korumak
  • Bileşimi göstermek için çubukları istiflemek
  • Görselleştirmenin istatistiksel doğasını sürdürmek
  • Tutarlılık için Seaborn’un renk paletlerini kullanmak

Gelişmiş Özellikler ve İpuçları

Artık temelleri ve özelleştirmeleri ele aldığığımıza göre, çubuk grafiklerimizi daha bilgilendirici ve profesyonel kılabilecek bazı gelişmiş özelliklere bakalım. Bu gelişmiş teknikleri göstermek için tips veri kümesini kullanmaya devam edeceğiz.

Çubuk grafikleri açıklama ekleme

Çubuklara değer etiketleri eklemek, görselleştirmelerinizi daha kesin ve bilgilendirici hale getirebilir. Her çubuğun üzerine tam bahşiş değerlerini gösteren bir çubuk grafik oluşturalım.

Önce, kütüphanelerimizi içe aktaralım ve verilerimizi hazırlayalım:

# Import required libraries
import seaborn as sns
import matplotlib.pyplot as plt

# Load and prepare the tips dataset
tips = sns.load_dataset("tips")

İstatistiksel değerlerle çubuk grafiğimizi oluşturalım:

# Create the basic barplot
ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None)    # Create barplot and store the axes object for annotations

Sonra, aşağıda gösterildiği gibi her çubuğun tepesine değer etiketleri ekleyeceğiz:

# Get the height of each bar
bars = ax.containers[0]                           # Get the bar container object
heights = [bar.get_height() for bar in bars]      # Extract height of each bar

# Add text annotations on top of each bar
for bar, height in zip(bars, heights):            # Loop through bars and heights together
    ax.text(
        bar.get_x() + bar.get_width()/2.,        # X position (center of bar)
        height,                                   # Y position (top of bar)
        f'${height:.2f}',                        # Text (format as currency)
        ha='center',                             # Horizontal alignment
        va='bottom'                              # Vertical alignment
    )

Çıktı:

Eksenleri ve ölçekleri yönetme

Çubuk grafikler oluştururken eksenleri ayarlamak, verilerinizi daha okunabilir ve etkileyici kılar. Seaborn’un işlevlerini kullanarak eksen sınırlarını, etiketleri ve işaretleri nasıl özelleştireceğimize bakalım.

Önce, kütüphanemizi içe aktaracak ve görselleştirmemiz için gereken veri kümesini yükleyeceğiz:

# Import required libraries
import seaborn as sns

# Load and prepare the tips dataset
tips = sns.load_dataset("tips")

Günlerin etiketlerini ve sırasını özelleştirerek bir çubuk grafik oluşturabiliriz. order parametresi, x ekseninde günlerin tam olarak nasıl sıralanmasını istediğimizi belirtmemizi sağlar:

# Create barplot with axis labels
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    order=['Thur', 'Sat', ‘Fri', 'Sun']     # Set custom order for days
)

Grafiğimizi daha bilgilendirici hale getirmek için set yöntemiyle her iki eksene de açıklayıcı etiketler ekleyebiliriz:

# Set descriptive axis labels
ax.set(
    xlabel='Day of Week',
    ylabel='Average Tip ($)'
)

Görselleştirmemizi ince ayar yapmak için belirli sınırlar ve işaretler belirleyebiliriz. ylim parametresi y ekseninin aralığını kontrol eder; xticks ve yticks ise işaretlerin tam olarak nerede görüneceğini tanımlamamıza olanak tanır:

# Customize axis limits and ticks
ax.set(
    ylim=(0, 5),                            # Set y-axis range from 0 to 5
    xticks=range(4),                        # Set x-axis tick positions
    yticks=[0, 1, 2, 3, 4, 5]              # Set specific y-axis tick values
)

Bu değişikliklerin tümünü grafiğe yansıtmak için bunları tek seferde çalıştırmamız gerekir; tek tek değil. Tüm kod aşağıda gösterilmiştir:

# Import required libraries
import seaborn as sns

# Load and prepare the tips dataset
tips = sns.load_dataset("tips")

# Create barplot with axis labels
ax = sns.barplot(
   data=tips,
   x="day",
   y="tip",
   order=['Thur', 'Sat', 'Fri', 'Sun']     # Set custom order for days
)

# Set descriptive axis labels
ax.set(
   xlabel='Day of Week',
   ylabel='Average Tip ($)'
)

# Customize axis limits and ticks
ax.set(
   ylim=(0, 5),                            # Set y-axis range from 0 to 5
   xticks=range(4),                        # Set x-axis tick positions
   yticks=[0, 1, 2, 3, 4, 5]              # Set specific y-axis tick values
)

Çıktı:

Ortaya çıkan grafik, açık etiketler, uygun ölçekler ve düzenli işaretlerle günlere göre bahşişleri gösterir; bu da verileri okumayı ve yorumlamayı kolaylaştırır.

Hata çubuklarını ekleme

Hata çubukları, verilerinizdeki belirsizliği veya değişkenliği görselleştirmenize yardımcı olur. Seaborn, güven aralıkları ve standart sapma dahil olmak üzere çubuk grafiklerinize hata çubukları eklemek için çeşitli seçenekler sunar.

Önce, kütüphanemizi içe aktaracak ve görselleştirmemiz için gereken veri kümesini yükleyeceğiz:

# Import required libraries
import seaborn as sns

# Load and prepare the tips dataset
tips = sns.load_dataset("tips")

Varsayılan olarak, Seaborn %95 güven aralıklarını gösterir. Farklı türde istatistiksel tahminleri göstermek için 'errorbar' parametresini kullanarak bunu değiştirebiliriz:

# Create barplot with confidence intervals
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar="ci",                          # Show confidence interval
    capsize=0.1                            # Add small caps to error bars
)

Çıktı:

Güven aralıkları yerine standart sapmayı da gösterebiliriz; bu, verilerimizin yayılımını görselleştirmeye yardımcı olur:

# Switch to standard deviation
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar="sd",                          # Show standard deviation
    capsize=0.1                            # Add small caps to error bars
)

Çıktı:

Bazen, daha sade bir görünüm için hata çubuklarını tamamen kaldırmak isteyebiliriz:

# Create barplot without error bars
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar=None                           # Remove error bars
)

Çıktı:

Ortaya çıkan grafikler, farklı hata çubuğu türlerinin haftanın farklı günlerinde bahşiş verilerimizdeki değişkenliği anlamamıza nasıl yardımcı olabileceğini gösterir.

Seaborn Çubuk Grafiklerinin Pratik Uygulamaları

Çubuk grafikler, özellikle farklı kategoriler arasında değerleri karşılaştırmanız veya aynı anda birden çok değişkeni analiz etmeniz gerektiğinde, veri görselleştirmede çok yönlü araçlardır. Seaborn çubuk grafiklerinin öne çıktığı iki yaygın uygulamaya bakalım.

Kategorik veri eğilimlerini görselleştirme

Seaborn çubuk grafikleri, özellikle farklı gruplar arasındaki metrikleri analiz ederken, kategorik verilerdeki örüntüleri ortaya çıkarmada başarılıdır. Hem merkezi eğilimi hem de belirsizliği göstererek, kategoriler arasındaki anlamlı farkları belirlemeye yardımcı olurlar. 

Bu da onları, farklı gruplar arasında değerleri karşılaştırmanız gereken müşteri davranışı, ürün performansı veya anket yanıtlarını analiz etmek için ideal kılar.

Birden çok değişkeni karşılaştırma

Analizimiz birden fazla faktörü içerdiğinde, Seaborn’un çubuk grafikleri verilerimizdeki karmaşık ilişkileri vurgulayabilir. Gruplama (hue) veya istifleme gibi özellikleri kullanmak, farklı değişkenleri aynı anda karşılaştırmaya yardımcı olur; böylece verilerimizin farklı yönleri arasındaki örüntüleri ve etkileşimleri fark etmeyi kolaylaştırır.

Sonuç 

Seaborn çubuk grafikleri, sadelik ile istatistiksel içgörü arasındaki doğru dengeyi kurar. Kütüphanenin sezgisel söz dizimi ve sağlam istatistiksel özelliklerle birleşimi, onu veri görselleştirme için vazgeçilmez bir araç haline getirir. Temel kategori karşılaştırmalarından gelişmiş gruplandırılmış görselleştirmelere kadar çubuk grafikler, veri örüntülerini etkili biçimde ortaya çıkarır ve iletir.

Veri görselleştirme becerilerinizi bir üst seviyeye taşımaya hazır mısınız? Sırada keşfedebilecekleriniz:

Seaborn becerilerinizi bir üst seviyeye taşımak ister misiniz? Şu kursa kaydolun: Seaborn ile Orta Düzey Veri Görselleştirme kursu.

Seaborn Çubuk Grafikleri Hakkında SSS

Seaborn barplot ne için kullanılır?

Seaborn çubuk grafikleri, hata çubuklarıyla istatistiksel tahminleri göstererek kategorik bir değişken ile sayısal bir değişken arasındaki ilişkiyi görselleştirir.

Seaborn çubuk grafiklerinin rengini değiştirebilir miyim?

Evet, renkleri tek renk için color parametresiyle veya çoklu renk şemaları için palette ile özelleştirebilirsiniz.

Seaborn'da gruplandırılmış çubuk grafikleri oluşturabilir miyim?

Evet, kategorik bir değişkene göre gruplanmış çubuklar oluşturmak için hue parametresini kullanın.

Seaborn çubuk grafiğime hata çubuklarını nasıl eklerim?

errorbar parametresini kullanın; örneğin güven aralıkları için errorbar='ci' veya standart sapma için errorbar='sd'.

Seaborn yatay çubuk grafikleri oluşturabilir mi?

Evet, çubukları dikey yerine yatay oluşturmak için barplot işlevinde orient='h' değerini ayarlayın.

Yazar

Rajesh Kumar

Ben bir veri bilimi içerik yazarıyım. YZ/ML/DS konuları etrafında içerik üretmeyi seviyorum. Ayrıca yeni YZ araçlarını keşfediyor ve onlar hakkında yazıyorum.

Konular

İlgili