0Pricing
Pandas & NumPy Academy · Ders

Aylık Eğilim Görselleştirmesi

Aylık geliri çizgi grafik olarak çizin, 3 aylık hareketli ortalamayı üzerine ekleyin ve en yüksek ile en düşük ayları açıklayın.

Aylık Eğilim Görselleştirmesi, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 4. 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.

Aylık Gelir Toplamlarını Hesaplama

Grafik oluşturmadan önce satış DataFrame'ini aylık toplamlar hâline getirin. year_month Period sütununa göre gruplayın ve geliri toplayın. Matplotlib'in tarih biçimlendiricisinin işaret etiketlerini doğru oluşturması için PeriodIndex'i .to_timestamp() ile DatetimeIndex'e dönüştürün. Dizinle sıralama, çizgi grafiğinin kronolojik olarak soldan sağa ilerlemesini sağlar.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_parquet('sales_features.parquet')

monthly = df.groupby('year_month')['revenue'].sum().sort_index()
monthly.index = monthly.index.to_timestamp()
print(monthly.head())

Aylık Gelir Çizgi Grafiği Oluşturma

plt.subplots(figsize=(12, 5)) ile bir Figure ve Axes oluşturun ve aylık gelir eğilimini çizmek için ax.plot() çağrısını yapın. Her ayda bir nokta göstermek için marker='o' kullanın; böylece çizgi düzgün olsa bile tek tek veri noktaları görünür olur. Daha sonra ekleyeceğiniz katmanlardan ayrılması için ana eğilimin rengini ve çizgi genişliğini uygun şekilde ayarlayın.

fig, ax = plt.subplots(figsize=(12, 5))

ax.plot(monthly.index, monthly.values,
        color='steelblue', linewidth=2, marker='o', markersize=5,
        label='Monthly Revenue')

ax.set_title('Monthly Revenue Trend')
ax.set_xlabel('Month')
ax.set_ylabel('Revenue (USD)')
plt.tight_layout()
plt.show()

3 Aylık Hareketli Ortalamayı Üstüne Ekleme

Ham aylık gelir çizgisi, mevsimsel gürültü nedeniyle keskin dalgalı görünebilir. Temel eğilimi daha net göstermek için monthly.rolling(3).mean() ile hesaplanan 3 aylık hareketli ortalamayı üzerine ekleyin. Ham seriyi örtmeden öne çıkması için bunu farklı renkte kesikli bir çizgi olarak çizin.

rolling_avg = monthly.rolling(3).mean()

ax.plot(rolling_avg.index, rolling_avg.values,
        color='darkorange', linewidth=2, linestyle='--',
        label='3-Month Moving Avg')

ax.legend()
plt.show()

En Yüksek Gelirli Ayı Açıklama

Gelirin en yüksek olduğu ayı işaretlemek için ax.annotate() kullanın. En yüksek değeri monthly.idxmax() ile, bu değerin kendisini ise monthly.max() ile bulun. Açıklama oku, metin etiketinden en yüksek veri noktasına uzanır ve grafiği PNG veya PDF olarak alan okuyucular da dâhil olmak üzere herkesin içgörüyü hemen görmesini sağlar.

peak_date = monthly.idxmax()
peak_val = monthly.max()

ax.annotate(f'Peak: ${peak_val:,.0f}',
            xy=(peak_date, peak_val),
            xytext=(peak_date, peak_val * 1.1),
            arrowprops=dict(arrowstyle='->', color='red'),
            color='red', fontsize=10)
plt.show()

En Düşük Gelirli Ayı Açıklama

Olası mevsimselliği veya kesintileri işaretlemek için en düşük gelirli ayı monthly.idxmin() kullanarak benzer şekilde gösterin. Hem en yüksek hem de en düşük değerleri açıklamak eksiksiz bir tablo sunar: paydaşların yalnızca en iyi ayı değil, gelirin ne kadar düşebileceğini de görmesini sağlar ve nakit akışı planlamasına katkıda bulunur.

trough_date = monthly.idxmin()
trough_val = monthly.min()

ax.annotate(f'Trough: ${trough_val:,.0f}',
            xy=(trough_date, trough_val),
            xytext=(trough_date, trough_val * 0.85),
            arrowprops=dict(arrowstyle='->', color='navy'),
            color='navy', fontsize=10)
plt.show()

Tarih İşaret Etiketlerini Biçimlendirme

Matplotlib'in varsayılan tarih işaret etiketleri çoğu zaman üst üste gelir veya okunması zor bir biçim kullanır. İşaret sıklığını ve etiket biçimini denetlemek için matplotlib içinden mdates aktarın ve bir MonthLocator ile DateFormatter ayarlayın. İşaret etiketlerini 45 derece döndürmek, 12 aylık eksende üst üste binmeyi önler.

import matplotlib.dates as mdates

ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))

plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()

4. Çeyrek İçin Gölgelendirilmiş Bölge Ekleme

ax.axvspan() kullanarak 4. çeyrek dönemini (Ekim–Aralık) gölgeli bir arka planla vurgulayın. Bu, mevsimsel eğilimleri hemen görünür kılar: en yüksek değer sürekli olarak gölgeli bölgeye denk geliyorsa 4. çeyrek, tanıtımlarla hedeflenmeye değer önemli bir satış dönemidir. alpha parametresi gölgelendirmenin saydamlığını denetler.

import datetime

q4_start = datetime.datetime(2023, 10, 1)
q4_end = datetime.datetime(2023, 12, 31)

ax.axvspan(q4_start, q4_end, alpha=0.15, color='gold', label='Q4')
ax.legend()
plt.show()

Zamana Göre Kategori Bazında Gelir Grafiği

Her çizginin bir ürün kategorisini temsil ettiği çok çizgili bir grafik oluşturun. Aylık-kategori DataFrame'ini döndürerek sütunların kategorileri, dizinin zamanı göstermesini sağlayın; ardından sütunlar üzerinde yineleyin ve her biri için ax.plot() çağrısı yapın. Aynı Axes üzerinde art arda çağrıldığında Matplotlib her çizgiye otomatik olarak farklı bir renk atar.

monthly_cat = df.groupby(['year_month', 'category'])['revenue'].sum().unstack('category')
monthly_cat.index = monthly_cat.index.to_timestamp()

fig, ax = plt.subplots(figsize=(12, 6))
for col in monthly_cat.columns:
    ax.plot(monthly_cat.index, monthly_cat[col], label=col, linewidth=1.5)

ax.legend(loc='upper left', fontsize=8)
ax.set_title('Monthly Revenue by Category')
plt.tight_layout()
plt.show()

Aylık Gelir İçin Yığılmış Çubuk Grafik

Yığılmış çubuk grafik, toplam aylık geliri gösterirken aynı zamanda her kategorinin yığına katkısını da ortaya koyar. Döndürülmüş DataFrame üzerinde doğrudan monthly_cat.plot(kind='bar', stacked=True, ax=ax) kullanın. Yığılmış çubuklar, altıdan az kategoriniz olduğunda en iyi sonucu verir; aksi hâlde renkleri birbirinden ayırt etmek zorlaşır.

fig, ax = plt.subplots(figsize=(12, 5))

monthly_cat.plot(kind='bar', stacked=True, ax=ax, colormap='tab10')

ax.set_title('Monthly Revenue by Category (Stacked)')
ax.set_xlabel('Month')
ax.set_ylabel('Revenue')
ax.legend(loc='upper left', fontsize=8)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

Aydan Aya Büyüme Oranı

Bağlam sağlamak için aydan aya yüzde büyüme oranını gelirin yanında grafikle gösterin: Ocak ayındaki görsel olarak küçük bir çubuk, önceki aya göre %20'lik bir büyümeyi temsil ediyor olabilir. Büyümeyi monthly.pct_change() * 100 ile hesaplayın ve birimleri birbirine karıştırmadan aynı x eksenini paylaşmak için ax.twinx() kullanarak ikincil bir y ekseninde çizin.

growth = monthly.pct_change() * 100

fig, ax1 = plt.subplots(figsize=(12, 5))
ax2 = ax1.twinx()

ax1.bar(monthly.index, monthly.values, width=20, color='steelblue', alpha=0.6, label='Revenue')
ax2.plot(growth.index, growth.values, color='red', marker='o', label='MoM Growth %')

ax1.set_ylabel('Revenue')
ax2.set_ylabel('MoM Growth %')
plt.title('Revenue and Month-over-Month Growth')
plt.tight_layout()
plt.show()

Grafiği Raporlar İçin Kaydetme

Slayt sunumları veya web panoları için uygun, yüksek çözünürlüklü bir PNG oluşturmak üzere fig.savefig('monthly_trend.png', dpi=150, bbox_inches='tight') kullanın. bbox_inches='tight' bağımsız değişkeni gereksiz beyaz alanı kırpar; dpi=150 ise dosyayı aşırı büyütmeden net bir görüntü sağlar. Basıma uygun raporlar için PDF olarak da kaydedin.

fig.savefig('monthly_trend.png', dpi=150, bbox_inches='tight')
fig.savefig('monthly_trend.pdf', bbox_inches='tight')
print('Figure saved as PNG and PDF')

Hızlı Kontrol

Bu dersteki Veri Analizi kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: aylık gelir toplamlarını hesaplamayı ve bunları çizgi grafik olarak göstermeyi, hareketli ortalamayı grafik üzerine eklemeyi ve en yüksek ve en düşük ayları açıklamalarla belirtmeyi ve yayın kalitesinde grafikleri PNG ve PDF olarak kaydetmeyi. Sırada, kullanıcı davranışı verilerinde oturum oluşturmayı ve olay sıralamasını inceliyoruz.

Sıkça Sorulan Sorular

“Aylık Eğilim Görselleştirmesi” dersi ücretsiz mi?

Evet — “Aylık Eğilim Görselleştirmesi” 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.

“Aylık Eğilim Görselleştirmesi” dersinde ne öğreneceğim?

Aylık geliri çizgi grafik olarak çizin, 3 aylık hareketli ortalamayı üzerine ekleyin ve en yüksek ile en düşük ayları açıklayı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 4. dersidir.

“Aylık Eğilim Görselleştirmesi” 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

  1. Satış Veri Kümesini Yükleme ve Denetleme
  2. Gelir Hesaplamaları ve Özellik Mühendisliği
  3. Bölge ve Kategoriye Göre GroupBy Analizi
  4. Aylık Eğilim Görselleştirmesi
← Pandas & NumPy Academy Sayfasına Dön