Ana içeriğe atla

Python Plotly Express Eğitimi: Göz Alıcı Görselleştirmelerin Kilidini Açın

Python Plotly Express ile son derece etkileşimli ve görsel açıdan etkileyici grafikler oluşturmayı öğrenin.
Güncel 3 Eki 2026  · 10 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Plotly sadece güzel görselleştirmeler oluşturmakla ilgili değildir; verinizin tüm potansiyelini açığa çıkarmak ve aksi halde gizli kalacak içgörüleri ortaya koymakla ilgilidir. Sayıların dili ile hikâyelerin dili arasında bir köprü görevi görür, bireyleri ve kurumları bilinçli kararlar almaya ve anlamlı değişimler yaratmaya güçlendirir.

ChatGPT, Plotly’i böyle tanımlıyor. Açıkça görülüyor ki Plotly, mevcut en iyi veri görselleştirme kütüphanelerinden biri.

Plotly Express

Aşağıdakine benzer son derece etkileşimli ve görsel açıdan çekici grafikler üretir:

Bugün, Plotly ile harika görseller oluşturmanın temellerini öğreneceksiniz.

Plotly Express’in Temelleri

Diğer tüm eğitimlerde olduğu gibi, pip (ya da tercih ederseniz conda) ile kütüphaneyi kurarak başlıyoruz.

$ pip install --upgrade plotly
$ conda install -c conda-forge plotly

Plotly düzenli güncellemeler alır, bu yüzden kütüphane hâlihazırda kuruluysa --upgrade etiketini eklediğinizden emin olun.

Bu eğitim, 2019’da tanıtılan ve çekirdek Plotly kütüphanesiyle eski etkileşim yöntemlerine göre birçok avantaj sunan Plotly’nin Express API’sine odaklanıyor:

  • Basit sözdizimi (neredeyse İngilizce okur gibi)
  • Geniş görselleştirme yelpazesi (ya da kendi aracınızı oluşturmanız için araçlar)
  • Otomatik eksen ve renk ölçekleme
  • pandas ile entegrasyon (Pandas’ın .plot fonksiyonu için Plotly çizim arka ucunu kullanabilirsiniz)

İşte Plotly Express’te temel bir grafiğin anatomisi:

import plotly.express as px

fig = px.plotting_function(
    dataframe,
    x='column-for-xaxis',
    y='column-for-yaxis',
    title='Title For the Plot',
    width=width_in_pixels,
    height=height_in_pixels
)

fig.show()

Farklı grafikler kendi adları altında yer alır; örneğin express modülünde (kısaca px) histogram veya scatter. Herhangi bir çizim fonksiyonunun ilk argümanı veri çerçevesidir ve X ile Y eksenleri için çizilecek sütun adları verilir.

En iyi uygulamalar, okuyucuların grafiğin neyle ilgili olduğunu bilmesi için grafiklerinize bilgilendirici bir title vermenizi önerir.

Bir çizim fonksiyonu çalıştığında bir Figure nesnesi döndürür; bu nesnenin üzerine show metodunu çağırarak grafiği defterinizde görüntülersiniz.

Grafik oluşturmaya başlamak için bir veri kümesine ihtiyacımız var. Bu eğitimde Diamonds veri kümesini kullanıyoruz. Sayısal ve kategorik özelliklerin güzel bir birleşimini içerir — bu makalenin amaçları için mükemmel.

import pandas as pd

diamonds = pd.read_csv("data/diamonds.csv")

diamonds.head()

Data Set

Veri kümesi 10 fiziksel özelliğe sahip 53 binden fazla elmas içerir. Aşağıda verinin temel istatistiklerini keşfedebilirsiniz.

diamonds.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 53940 entries, 0 to 53939
Data columns (total 10 columns):
#   Column   Non-Null Count  Dtype 
---  ------   --------------  ----- 
0   carat    53940 non-null  float64
1   cut      53940 non-null  object
2   color    53940 non-null  object
3   clarity  53940 non-null  object
4   depth    53940 non-null  float64
5   table    53940 non-null  float64
6   price    53940 non-null  int64 
7   x        53940 non-null  float64
8   y        53940 non-null  float64
9   z        53940 non-null  float64
dtypes: float64(6), int64(1), object(3)
memory usage: 4.1+ MB
diamonds.describe()

Keşifsel Veri Analizi (EDA) yaparken ilk adımlardan biri tekil dağılımları incelemektir.

Plotly bu görev için birçok grafik sunar: histogramlar, kutu grafikleri, keman grafikleri, çubuk grafikler vb. Birkaçını görelim.

Plotly Express’te histogramlar

Histogram muhtemelen insanların öğrendiği ilk görseldir.

Bir dağılımın değerlerini sıralar ve kutucuklara (bin) yerleştirir. Ardından, her kutucuğa düşen değerlerin sayısını göstermek için çubuklar kullanılır:

import plotly.express as px
​
fig = px.histogram(
  diamonds,
  x="price",
  title="Histogram of diamond prices",
  width=600,
  height=400,
)
​
fig.show()

Histogram Plotly Express

Herhangi bir çubuğun üzerine geldiğinizde, ilgili kutucuğun aralığını görebilirsiniz. Plotly kutucuk sayısını otomatik olarak bulur; ancak kendiniz ayarlamak isterseniz nbins parametresini kullanabilirsiniz.

Bununla birlikte, her bir dağılım için mükemmel kutucuk sayısını bulmak zordur. Bu nedenle, yaygın bir uygulama olarak kutucuk sayısını dağılım uzunluğunun kareköküne eşitleyebilirsiniz:

# Doğru kutucuk sayısını bulun
nbins = int(len(diamonds) ** (1 / 2))
​
fig = px.histogram(
  diamonds,
  x="price",
  title="Histogram of diamond prices",
  nbins=nbins,
  width=600,
  height=400,
)
​
fig.show()

Plotly Express çubuk grafikleri

Histogramlar nicel özellikleri analiz eder. Kategorik verileri analiz etmek için çubuk grafiklere başvururuz. Örneğin, kategorik cut sütununu histogram fonksiyonuna verdiğimizde, countplot denilen bir çubuk grafik türü elde ederiz. Evet, doğru tahmin ettiniz — her kategorideki gözlem sayısını sayar.

fig = px.histogram(diamonds, x="cut")
​
fig.show()

Bar Chart Plotly Express

Ama durun, grafiğe hiç etiket koymadık! Bunu, bir figür oluşturulduktan sonra pek çok yönünü değiştirebilen update_layout fonksiyonunu kullanarak düzeltelim.

fig.update_layout(
  title="The number of diamonds in each diamond cut category",
  xaxis_title="",
  yaxis_title="Count",
)

Bar Chart Labels Plotly Express

title‘ın ne yaptığını zaten biliyorsunuz. xaxis_title ve yaxis_title, Plotly tarafından üretilen her iki eksenin etiketlerini (ki bunlar basitçe sütun adlarıdır) değiştirir.

Şimdi, her bir elmas kesim kategorisi için ortalama fiyatı görelim. Önce pandas groupby kullanalım:

mean_prices = (
    diamonds.groupby("cut")["price"].mean().reset_index()
)

mean_prices

Groupby

groupby işleminin sonuna reset_index fonksiyonunu zincirlemek çıktıyı bir DataFrame’e dönüştürür ve Plotly DataFrame’leri çok sever. Öyleyse bunu bar fonksiyonuna iletelim:

fig = px.bar(mean_prices, x="cut", y="price")
​
fig.update_layout(
  title="Average diamond prices for each cut category",
  xaxis_title="",
  yaxis_title="Mean price ($)",
)
​
fig.show()

Mean Price

bar, bir kategorik ve bir sayısal özelliği alır, iletilen DataFrame’deki her satır için tek bir çubuk oluşturur. Sonuç, her elmas türü için fiyatların göze hoş gelen bir karşılaştırmasıdır.

Plotly Express’te kutu grafikleri

Dağılımları analiz etmek için bir diğer yaygın grafik, Plotly Express’te box ile oluşturulan kutu grafiğidir:

fig = px.box(diamonds, x="clarity", y="carat")
​
fig.update_layout(
  title="Distribution of diamond carats for each clarity category",
  xaxis_title="Clarity",
  yaxis_title="Carat",
)
​
fig.show()

Box Plot Plotly Express

Yalnızca ortalama elmas karatını gösteren çubuklar oluşturmak yerine, kutu grafiği birden fazla istatistik gösterir:

Box Plot Statistics

Şunları görebilirsiniz:

  • Minimum/maksimum
  • Medyan
  • 25. yüzdelik
  • 75. yüzdelik
  • ve aykırı değerler

her bir elmas berraklığı kategorisi için.

Plotly Express’te keman grafikleri

Dağılımları keşfetmek için bir başka eğlenceli grafik türü keman grafiktir. Keman grafikleri, birkaç ek dokunuşla birlikte temelde kutu grafikleridir:

fig = px.violin(diamonds, x="cut", y="price")
​
fig.show()

Violin Plot Plotly Express

Kutu göstermek yerine, bir özelliğin yoğunluğunu belirten düzgün bir eğri gösterir. İçine bir kutu grafik bindirmek için box özniteliğini True olarak ayarlayabilirsiniz:

fig = px.violin(diamonds, x="cut", y="price", box=True)
​
fig.show()

Violin Box Plot Plotly Express

Yalnızca özet istatistikler gösteren kutu grafiklerin aksine, keman grafikleri dağılımın şeklini de gösterir.

Plotly Express’te özellikler arası ilişkileri görselleştirme

Birbiriyle yakından ilişkili özellikleri çizdiğinizde yeni kalıplar ve içgörüler görmeye başlarsınız. Örneğin, elmasın karatının (ağırlığının) fiyatını belirleyen ana faktör olduğunu varsayarsak, bu ilişkiyi keşfedelim.

Plotly Express’te saçılım grafikleri

Tüm veri kümesindeki elmasları nokta olarak çizen bir saçılım grafiği (px.scatter) kullanabiliriz. Noktaların konumu, karşılık gelen fiyat ve karat değerleri tarafından belirlenir:

fig = px.scatter(diamonds, x="price", y="carat")
​
fig.update_layout(
  title="Price vs. Carat",
  xaxis_title="Price ($)",
  yaxis_title="Carat",
)
​
fig.show()

Scatter Plot Plotly Express

Bir grafikte gösterilecek çok fazla veri olduğunda ortaya çıkan aşırı çakışma sorunuyla karşılaştık. Aşırı çakışma, verideki gerçek kalıpları ve eğilimleri göstermek yerine onları gizler.

Bunu, veri kümesinin yalnızca ~%10’unu çizerek düzeltebiliriz; bu, mevcut kalıpları ortaya çıkarmak için yeterli olacaktır:

fig = px.scatter(
  diamonds.sample(5000), x="price", y="carat"
)
​
fig.update_layout(
  title="Price vs. Carat",
  xaxis_title="Price ($)",
  yaxis_title="Carat",
)
​
fig.show()

Scatter Plot 10 Percent

Saçılım fonksiyonuna çağrıda, yalnızca 5000 satır (.sample(5000)) geçiriyoruz; bu da fiyat-karat ilişkisinde hafif bir yukarı yönlü eğilim gösteriyor.

Plotly Express ısı haritaları

Isı haritaları, hücrelerdeki sayı yığınından kalıpları görmenin zor olduğu büyük bir matris gibi karmaşık veri kümelerini görselleştirmek için harikadır.

Bir ısı haritası, bir matristen her hücrenin büyüklüğüne göre renkler atar. Bunun faydalı olabileceği bir senaryo, bir veri kümesinin korelasyon matrisine bakmaktır.

Korelasyon, sayısal özellikler arasındaki doğrusal ilişkiyi ölçer. Dolayısıyla korelasyon matrisindeki her hücre, bir özellik çiftinin korelasyonunu temsil eder.

Herhangi bir veri kümesinin korelasyon matrisini pandas’ın corr yöntemiyle hesaplayabilirsiniz; bu yöntem bir DataFrame döndürür. Bunu Express’in imshow fonksiyonuna geçirirseniz bir ısı haritası elde edersiniz:

import plotly.express as px
​
# Create heatmap using Plotly Express
fig = px.imshow(
  diamonds.corr(),
  color_continuous_scale="Inferno_r",
)
​
# Show plot
fig.show()

Heatmap Plotly Express

Korelasyon -1 ile 1 arasında değişir. Aralığın uçlarına yakın değerler, özellikler arasında güçlü pozitif ya da negatif doğrusal ilişkiyi ifade eder.

color_continuous_scale parametresi için ters Inferno renk haritasını seçiyoruz. Plotly dokümanlarındaki renk ölçekleri sayfasından diğer renk haritalarını seçebilirsiniz.

Plotly Express’te grafik özelleştirme

Plotly Express API’sinin en büyük özelliklerinden biri, grafiklerin kolayca özelleştirilebilmesidir.

update_layout fonksiyonu, grafiklerinizin neredeyse her yönünü değiştirmek için kullanabileceğiniz birçok parametre içerir.

Grafiklerinizin nerede görüntüleneceğine bağlı olarak, onları her türlü izleyici, mekân veya medya için sunulabilir hâle getirmek sizin görevinizdir.

Seçilecek ilk şeylerden biri grafik temasınıdır. Plotly’de temalar, neredeyse tüm bileşenleri kontrol eden varsayılan grafik yapılandırmalarıdır.

Herhangi bir çizim fonksiyonunun template parametresini kullanarak bunu değiştirebilirsiniz:

sample = diamonds.sample(3000)
​
fig = px.scatter(
  sample, x="price", y="carat", template="ggplot2"
)
​
fig.show()

Plot Theme Plotly Express

Popüler olanlardan bazıları ggplot2, seaborn, plotly_dark ve presentation’dır. Tam listeyi plotly.io.templates çağırarak görebilirsiniz.

Renkler

Saçılım grafiklerimiz şimdiye kadar iki boyutluydu. Ancak renkle buna ek bilgi ekleme seçeneğimiz var.

Örneğin, grafikteki her noktayı elmasın ait olduğu kategoriye göre renklendirebiliriz. Bunu yapmak için, yalnızca cut değerini color parametresine geçirmeniz yeterli:

sample = diamonds.sample(3000)
​
fig = px.scatter(sample, x="price", y="carat", color="cut")
​
fig.show()

Colors Plotly Express

cut parametresi ayrıca grafikte kategori renklerini gösteren bir açıklama kutusunu (legend) zorunlu kılar.

İşaretçi boyutu

Uygulayabileceğimiz bir diğer yaklaşım, sayısal bir özelliği noktaların boyutuyla göstermektir.

size parametresini carat olarak ayarlayarak, elmas karatına bağlı olarak farklı boyutlarda noktalar elde ederiz:

fig = px.scatter(sample, x="price", y="x", size="carat")
​
fig.show()

Marker Size Plotly Express

Hem rengi hem boyutu kullansak nasıl olur? Elbette!

fig = px.scatter(
  sample, x="price", y="x", size="carat", color="cut"
)
​
fig.show()

Size and Color

Ancak bu grafik, çıplak gözün işlemesi için fazla bilgi içerdiğinden çok bilgilendirici değil. İyi bir uygulama olarak tek bir grafiğe üçten fazla özellik yüklememek gerekir.

Sonuç

Sonuna kadar geldiğiniz için tebrikler! Bu eğitimde, aşağıdaki kaynaklarımızdan bazılarıyla Plotly’i kendi kendinize öğrenmeye devam edecek kadar bilgi edindiniz:

Ayrıca daha fazla özelleştirme seçeneği, etkileşim ve animasyon üzerinde tam kontrol ve gelişmiş görselleştirme türleri desteği için Plotly’nin Graph Objects API’sini de öğrenebilirsiniz.

Konular
Python
Veri Görselleştirme

Python Kursları

Kurs

Dash ve Plotly ile Paneller Oluşturma

4 sa
17K
Dash ve Plotly ile etkileşimli ve içgörü açısından zengin gösterge panelleri oluşturmayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör