Çubuk Grafikler ve Histogramlar
Kategorik sayımları ax.bar() ile, veri dağılımlarını ax.hist() ile görselleştirin; bölme sayısını ve kenar rengini ayarlayın.
Çubuk Grafikler ve Histogramlar, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Pandas & NumPy Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
Çubuk Grafikleri ve Histogramlar
Çubuk grafikleri kategorik verileri gösterir: her kategori için bir çubuk bulunur ve çubuğun yüksekliği bir değerle orantılıdır. Şu soruya yanıt verirler: “Her kategoride ne kadar var?” Histogramlar ise sürekli bir sayısal değişkenin dağılımını gösterir: veriler aralıklara bölünür ve çubuk yüksekliği her aralıktaki sayıyı veya sıklığı gösterir. Şu soruya yanıt verirler: “Bu değerler nasıl dağılmış?” Her ikisi de sırasıyla ax.bar() ve ax.hist() kullanır.
Dikey Çubuk Grafikleri için ax.bar()
ax.bar(x, height), x'in kategori konumları (veya etiketleri), height'ın ise çubuk değeri olduğu dikey bir çubuk grafiği çizer. Temel parametreler şunlardır: width (varsayılan 0.8; boşluğa göre çubuk genişliğini denetler), color, edgecolor ve align ('center' veya 'edge'). Rectangle artist nesnelerinden oluşan bir liste döndürür.
import matplotlib.pyplot as plt
import numpy as np
categories = ['East', 'West', 'North', 'South']
values = [420, 380, 310, 290]
fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(categories, values, color='steelblue', edgecolor='white', width=0.6)
ax.set_title('Regional Revenue')
ax.set_xlabel('Region')
ax.set_ylabel('Revenue (USD)')
# plt.show()
plt.close()Çubuk Görünümünü Özelleştirme
Birkaç özelleştirme, çubuk grafiklerini çok daha okunabilir hâle getirir: tüm çubuklar için tek bir vurgu rengi kullanın (veya çubukları birbirinden ayırmak için renklerden oluşan bir dizi kullanın), ax.bar_label() ile her çubuğun üzerine değer etiketleri ekleyin, nefes payı bırakmak için çubuk genişliğini denetleyin ve en uzun çubuğun üzerinde etiketlere yer açmak için ax.set_ylim(0, max * 1.15) ayarlayın.
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(categories, values, color='steelblue', edgecolor='white', width=0.6)
# Add value labels above bars
ax.bar_label(bars, fmt='%d', padding=3, fontsize=10)
# Give space above bars for labels
ax.set_ylim(0, max(values) * 1.15)
ax.set_title('Regional Revenue')
plt.tight_layout()
plt.close()ax.barh() ile Yatay Çubuk Grafikleri
Yatay çubuk grafikleri için ax.barh(y, width) kullanın. Kategori etiketleri uzun olduğunda (soldan sağa doğal biçimde okunurlar) veya çok sayıda kategori bulunduğunda (daha sıkı biçimde dizilirler) yatay çubuklar tercih edilir. Aynı özelleştirme parametrelerinin tümü geçerlidir: height çubuk kalınlığını denetler, ax.barh_label() (veya ax.bar_label()) ise metin etiketleri ekler.
import pandas as pd
df = pd.DataFrame({'region': categories, 'revenue': values})
df_sorted = df.sort_values('revenue')
fig, ax = plt.subplots(figsize=(7, 4))
ax.barh(df_sorted['region'], df_sorted['revenue'],
color='steelblue', edgecolor='white', height=0.5)
ax.set_title('Revenue by Region (Sorted)')
ax.set_xlabel('Revenue (USD)')
plt.tight_layout()
plt.close()Gruplandırılmış Çubuk Grafikleri
Birden çok grubu yan yana karşılaştırmak için çubuk konumlarını elle kaydırarak gruplandırılmış bir çubuk grafiği oluşturun. Her grup için merkez konumlarını hesaplayın, ardından her alt grup için sabit bir kaydırma değeri çıkarın veya ekleyin. Çubukların üst üste binmemesi için toplam çubuk genişliği ile gruplar arasındaki boşluğun toplamı 1.0 olmalıdır. ax.set_xticks() ayarlandığında, tik etiketleri gruplandırılmış çubukların ortasına yerleşir.
products = ['A', 'B', 'C']
q1 = [80, 120, 95]
q2 = [90, 110, 105]
x = np.arange(len(products))
width = 0.35
fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(x - width/2, q1, width, label='Q1', color='steelblue')
ax.bar(x + width/2, q2, width, label='Q2', color='coral')
ax.set_xticks(x)
ax.set_xticklabels(products)
ax.legend()
ax.set_title('Q1 vs Q2 Sales by Product')
plt.close()Yığılmış Çubuk Grafikleri
Yığılmış çubuklar, bir toplamın birden çok alt grup arasındaki bileşimini gösterir. İkinci grubun çubukları, bottom parametresi kullanılarak birinci grubun çubuklarının bittiği yerden başlar. Sonraki her katmanın bottom değeri, kendisinden önceki tüm katmanların kümülatif toplamıdır. Yığılmış çubuklar, hem toplamı hem de her bileşenin katkısını aynı anda göstermek için kullanışlıdır.
q1_arr = np.array(q1)
q2_arr = np.array(q2)
fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(products, q1_arr, label='Q1', color='steelblue')
ax.bar(products, q2_arr, bottom=q1_arr, label='Q2', color='coral')
ax.legend()
ax.set_title('Stacked Q1 + Q2 Sales by Product')
ax.set_ylabel('Total Sales')
plt.close()Histogramlar için ax.hist()
ax.hist(data, bins) bir histogram oluşturur. bins parametresi, verilerin kaç eşit aralığa bölüneceğini denetler (varsayılan 10). Eşit olmayan aralıklar için bölüt sınırlarının listesini de verebilirsiniz. Temel parametreler şunlardır: density=True histogramı olasılık yoğunluğuna göre normalleştirir, edgecolor çubuklar arasına kenarlık ekler, color ve alpha ise görünümü denetler.
np.random.seed(42)
data = np.random.randn(500) # 500 samples from standard normal
fig, ax = plt.subplots(figsize=(7, 4))
ax.hist(data, bins=30, color='steelblue', edgecolor='white', alpha=0.7)
ax.set_title('Distribution of Values')
ax.set_xlabel('Value')
ax.set_ylabel('Count')
plt.close()Bölüt Sayısını Seçme
Bölüt sayısı, histogramın görünümünü büyük ölçüde etkiler. Çok az bölüt yapıyı gizler; çok fazla bölüt ise gürültülü sivrilikler oluşturur. Yaygın sezgisel yöntemler şunlardır: Sturges kuralı (≈ log2(n) + 1), Scott kuralı veya Freedman-Diaconis kuralı. Matplotlib bunları metin olarak destekler: bins='auto', bins='scott', bins='fd'. Keşifsel analiz için birkaç değeri elle deneyin; sunumlarda ise şekli en iyi aktaran bölüt sayısını seçin.
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
for ax, b in zip(axes, [5, 30, 'auto']):
ax.hist(data, bins=b, edgecolor='white', color='steelblue', alpha=0.7)
ax.set_title(f'bins={b}')
ax.set_xlabel('Value')
plt.tight_layout()
plt.close()Karşılaştırma için Üst Üste Histogramlar
Aynı eksenlerde iki dağılımı karşılaştırmak için farklı veri ve renklerle ax.hist() işlevini iki kez çağırın. Üst üste binme durumunun görünür olması için her ikisinde de alpha=0.5 kullanın. Etiketler ekleyip ax.legend() çağrısını yapın. Örneklem boyutları farklı olduğunda density=True kullanmak, her iki histogramı aynı ölçeğe normalleştirir ve şekillerin doğrudan karşılaştırılmasını sağlar.
group_a = np.random.randn(300)
group_b = np.random.randn(300) + 1.5 # shifted right
fig, ax = plt.subplots(figsize=(7, 4))
ax.hist(group_a, bins=25, alpha=0.5, color='steelblue', label='Group A', density=True)
ax.hist(group_b, bins=25, alpha=0.5, color='coral', label='Group B', density=True)
ax.legend()
ax.set_title('Distribution Comparison')
plt.close()Pandas Serilerini ve DataFrame'lerini Çizme
Hem .plot.bar() hem de .plot.hist(), DataFrame/Series yöntemleri olarak kullanılabilir ve otomatik şekilde Matplotlib şekilleri oluşturur. Mevcut bir Axes üzerinde çizim yapmak için ax parametresini kabul ederler. Gruplandırılmış Pandas verilerinden çubuk grafikleri oluşturmanın en hızlı yolu budur: grup toplulaştırmasını hesaplayın, sonuç üzerinde .plot.bar() çağrısını yapın, ardından döndürülen Axes'i özelleştirin.
import pandas as pd
import numpy as np
df_sales = pd.DataFrame({
'region': ['East', 'West', 'North', 'South'],
'revenue': [420, 380, 310, 290]
}).set_index('region')
fig, ax = plt.subplots(figsize=(7, 4))
df_sales['revenue'].plot.bar(ax=ax, color='steelblue', rot=0)
ax.set_title('Revenue by Region')
plt.tight_layout()
plt.close()Çubuk Grafiği mi, Histogram mı Seçilmeli?
Çubuk grafiği ile histogram arasındaki seçim, veri türünüze bağlıdır. x ekseniniz, çubukların her kategori için toplulaştırılmış değerleri gösterdiği, birbirinden ayrı ve sırasız kategorileri (ürün adları, bölgeler, kullanıcı segmentleri) temsil ediyorsa çubuk grafiği kullanın. x ekseniniz sürekli bir sayısal değişkense ve değerlerin bir aralık boyunca nasıl dağıldığını göstermek istiyorsanız histogram kullanın. Bu ikisini karıştırmak, verilerin türü hakkında okuyucuları yanıltan yaygın bir görselleştirme hatasıdır.
# Bar chart: categorical x-axis (product names)
products = ['Widget', 'Gadget', 'Doohickey']
revenue = [500, 300, 200]
fig, ax = plt.subplots(figsize=(5, 3))
ax.bar(products, revenue, color='steelblue')
ax.set_title('Revenue per Product (Bar Chart)')
plt.close()
# Histogram: continuous x-axis (order sizes)
order_sizes = np.random.exponential(scale=50, size=300)
fig, ax = plt.subplots(figsize=(5, 3))
ax.hist(order_sizes, bins=20, color='coral', edgecolor='white')
ax.set_title('Distribution of Order Sizes (Histogram)')
plt.close()Hızlı Kontrol
Bu derste çubuk grafikleri ve histogramlar konusundaki anlayışınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: ax.bar() dikey çubuk grafikleri, ax.barh() ise yatay çubuk grafikleri oluşturur; bottom yığılmış çubukları etkinleştirir; ax.hist(), bölüt sayısı bins ile denetlenen histogramlar oluşturur; density=True ise adil bir karşılaştırma için histogramları normalleştirir. Sırada, eksen etiketleri ve başlıklar ekleyecek, ayrıca yayın kalitesinde şekilleri kaydedeceğiz.
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Çubuk Grafikler ve Histogramlar” dersi ücretsiz mi?
Evet — “Çubuk Grafikler ve Histogramlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Pandas & NumPy Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
“Çubuk Grafikler ve Histogramlar” dersinde ne öğreneceğim?
Kategorik sayımları ax.bar() ile, veri dağılımlarını ax.hist() ile görselleştirin; bölme sayısını ve kenar rengini ayarlayın. Pandas & NumPy Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Pandas & NumPy Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Pandas & NumPy Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Çubuk Grafikler ve Histogramlar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Pandas & NumPy Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Pandas & NumPy Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Şekil ve Eksen Mimarisi
- Çizgi ve Dağılım Grafikleri
- Çubuk Grafikler ve Histogramlar
- Etiketler, Başlıklar ve Şekilleri Kaydetme