Kurs
Histogramlar, veri noktalarının belirli aralıklarda gruplandırılarak görselleştirildiği popüler grafiklerdir. Genellikle istatistikte, belirli bir tür değişkenin belirli bir aralıkta kaç kez göründüğünü göstermek için kullanılırlar. Örneğin, eski matematik öğretmeniniz sınıfınızdaki herkesin aldığı notların sayısını görselleştirmek için bir histogram kullanmış olabilir.

Şekil 1: Bir sınıftaki notların dağılımını gösteren örnek bir histogram.
[Kaynak: Matplotlib ile Örnek Histogram]
Farklı yüksekliklerdeki karakteristik çubukları çubuk grafikleri andırsa da, histogramlar kategorik veriler yerine nicel verileri görselleştirmek için kullanılır – çubuk grafiklerde durum bunun tersidir.
Genel olarak, histogramlarda görselleştirilen sayısal veriler süreklidir, yani sonsuz sayıda değer alabilir. Sürekli değişkenlerin her bir değerini çizmek çoğu zaman pratik değildir. Histogramlar, birden çok veri noktasını mantıksal aralıklarda (kutu/bins) gruplayarak ve bunların görselleştirilmesini sağlayarak bu sorunu hafifletir.
Bu eğitimde, Python’da Plotly veri görselleştirme kütüphanesini kullanarak histogramların nasıl uygulanacağını ele alacağız. Ayrıca Plotly histogramınızı özelleştirmenin farklı yollarına ve veri görselleştirmenin neden önemli olduğuna da değineceğiz.
Bu eğitimdeki kodu adım adım izlemek için şu DataLab çalışma kitabına göz atın.
Veri Analizinde Veri Görselleştirmenin Önemi
Hiçbir işletme, verilerini daha iyi anlamaktan fayda görmeyeceğini iddia edemez. Veri analizinin rolü, işletmelerin performanslarını optimize etmelerine ve kârlılıklarını artırmalarına yardımcı olmaktır; veri nerede varsa bu bilim tüm alanlara uzanır, zira içgörü genellikle bir kaldıraç olarak görülür.
Veri görselleştirmeleri, bilgiyi ve veriyi temsil etmek için analistlerin kullandığı grafiksel temsillerdir. Amacı, verilerden çıkarılan önemli dersleri okuyucularına vurgulayarak, verileri kolay anlaşılır bir formatta özetlemektir.
Başka bir deyişle, işletmeler görsel destek olmadan zor olabilecek veri eğilimlerini hızla tanımlamaya yardımcı olmak için veri görselleştirmelerini kullanır. Grafiksel temsiller, bilgiyi evrensel, hızlı ve etkili bir biçimde iletmeyi kolaylaştırır.
Plotly’e Giriş
Plotly, JavaScript ile yazılmış, Python ve R için etkileşimli, açık kaynaklı bir veri görselleştirme kütüphanesidir. Bu yazıda, JavaScript muadilinden ayırt etmek için zaman zaman “plotly.py” olarak da anılan Plotly Python’a odaklanacağız.
İpucu: Plotly’i kavramak için Python ile Plotly’ye Giriş veya R ile Plotly ile Etkileşimli Veri Görselleştirme kurslarını alın.
Plotly kullanıcılarının çoğu, kütüphanenin hikâye anlatıcılarının modern estetikleri oldukça kolayca uygulamasına imkân tanımasına başta “etkilendiklerini” söyler. Plotly Python, kullanıcıların şu ortamlarda gösterilebilen çekici, etkileşimli web tabanlı görselleştirmeler oluşturmasına olanak tanır:
- Jupyter not defterlerinde,
- bağımsız HTML dosyalarına kaydedilmiş olarak,
- Dash kullanarak saf Python ile oluşturulmuş web uygulamalarının bir parçası olarak sunulabilir.
Plotly’nin bir diğer çekici yanı da mevcut grafik türlerinin geniş yelpazesidir. Kütüphane, istatistik, finans, coğrafya, bilim ve üç boyutlu grafikler dâhil olmak üzere çeşitli kullanım alanlarını kapsayan 40’tan fazla benzersiz grafiği destekler.
Kütüphanenin bir görüntü dışa aktarma aracı olan Kaleido ile derin entegrasyonu sayesinde Plotly ile oluşturulan görselleştirmeleri dışa aktarmak kolaydır. Ayrıca masaüstü editörleri (ör. Spyder, PyCharm vb.) ve statik belgelerin yayımlanması (ör. Jupyter not defterlerini PDF biçimine aktarma) gibi web dışı bağlamlar için de kapsamlı destek vardır.
plotly.py’ı kurmak oldukça basittir; pip ile kurulabilir:
pip install plotly>=5.11.0, <5.12.0
Veya Conda ile:
conda install -c plotly plotly>=5.11.0, <5.12.0
Not: Kütüphanelerin, farklı projelerin bağımlılıklarını ayrı tutmak için sanal bir ortamda kurulması önerilir. Ayrıca bulutta bir Python & R Veri Bilimi IDE’si olan DataLab çalışma kitabı ile de başlayabilirsiniz.
DataLab Kullanımı
DataLab, kullanıcıların bireysel veya kolektif olarak kod yazmasına, veri analiz etmesine ve veri içgörülerini paylaşmasına olanak tanıyan çevrimiçi bir Tümleşik Geliştirme Ortamıdır (IDE). Başka bir deyişle, DataLab’i veri bilimi için özel olarak tasarlanmış bir tür Google Dokümanlar gibi düşünebilirsiniz; nasıl çalıştıklarını Sınıfta DataLab Kullanımı başlıklı yazımızda daha fazla öğrenin.
Bu görev için bir veri setinden bir çalışma kitabı oluşturmamız gerekiyor. Neyse ki, DataCamp analiz edilecek zengin ve giderek büyüyen bir ilginç veri seti havuzu sunuyor. Bir veri setinden çalışma kitabı oluşturduğumuzda, ortam başlangıçtan itibaren sizin çalışmaya başlamanız için tüm önceden yapılandırılmış verileri ve verilerin kısa bir açıklamasını içerecektir.
Bir DataCamp veri setini kullanarak çalışma kitabı oluşturma adımları şunlardır:
- DataLab uygulamasında, kenar çubuğundan "Datasets"’i seçin.
- İlgilendiğiniz bir veri setini seçin. Bir iletişim kutusu görüntülenir. Seçilen veri setinin önizlemesini, veri sözlüğünü, veri seti kaynağına bağlantıyı, olası dil seçimini (Python veya R) ve bu veri setiyle diğer kullanıcıların oluşturduğu yayınların bir özetini sunar.
- Create workbook seçeneğini belirleyin.

Şekil 2: Bir veri setinden çalışma kitabı oluşturma adımlarını gösteren bir GIF.
Not: Kodla birlikte ilerlemek için Olimpiyat Verileriyle Plotly Histogram Oluşturma sayfasına bakın.
DataCamp’in iç veri koleksiyonundan Olympics Data veri setini kullanacağız. Açıklamaya göre bu, modern Olimpiyat Oyunlarına ilişkin Atina 1896’dan Rio 2016’ya kadar uzanan tarihsel bir veri setidir. Her satır, Olimpiyat etkinliğinde yarışan bireysel bir sporcuyu (271116 örnek) ve kazanılan madalyayı (varsa) içerir.
Sütunlar şunlardan oluşur:
|
Sütun |
Açıklama |
|
id |
Her sporcu için benzersiz numara |
|
name |
Sporcunun adı |
|
sex |
M veya F |
|
age |
Sporcunun yaşı |
|
height |
Santimetre cinsinden |
|
weight |
Kilogram cinsinden |
|
team |
Takım adı |
|
noc |
Ulusal Olimpiyat Komitesi 3 |
|
games |
Yıl ve sezon |
|
year |
Tam sayı |
|
season |
Yaz veya Kış |
|
city |
Ev sahibi şehir |
|
sport |
Spor dalı |
|
event |
Etkinlik |
|
medal |
Altın, Gümüş, Bronz veya NA |
Mevcut anlayışımıza göre, histogram oluşturmak için kullanabileceğimiz sütunlar: age, height, weight ve year. Bunun nedeni, histogramların sürekli sayısal değerlerle oluşturulmasıdır – sayısal verilerin dağılımını temsil etmek için kullanılırlar; veriler kutulara (bins) ayrılır ve her kutunun sayımı gösterilir.
Histogramımızı oluşturmak için age sütununu kullanacağız.
Plotly Histogram Oluşturma
Plotly ile Python’da bir histogram oluşturmak oldukça basittir; Plotly Express’i, yani kullanımı kolay, üst düzey bir arayüzü kullanabiliriz…
import plotly.express as px
# Create a histogram
fig = px.histogram(olympic_data.age, x="age",
title="Distribution of Athletes age")
fig.show()
Şekil 3: Plotly Express kullanılarak oluşturulan bir histogram
Graph Objects kullanma seçeneğimiz de var.
import plotly.graph_objects as go
fig = go.Figure(data=[go.Histogram(x=olympic_data.age)])
# add the title
fig.update_layout(title=dict(text="Distribution of Athletes age"))
fig.show()
Şekil 4: Plotly Graph Objects kullanılarak oluşturulan bir histogram.
Plotly express işlevleri, dahili olarak graph_objects çağrıları yapar ve bir değer döndürür. Bu nedenle, eğer görselleştirmeler graph_objects kullanılarak çizilseydi daha fazla satır kod gerektirecek durumlarda, Plotly express işlevleri kullanıcıların veri görselleştirmelerini daha az kodla çizebilmesini sağlar.
"plotly.express modülü (genellikle px olarak içe aktarılır), tek seferde tüm şekilleri oluşturabilen işlevler içerir ve Plotly Express veya PX olarak anılır. Plotly Express, Plotly kütüphanesinin yerleşik bir parçasıdır ve en yaygın şekilleri oluşturmak için önerilen başlangıç noktasıdır. Her Plotly Express işlevi dahili olarak graph objects kullanır ve bir plotly.graph_objects.Figure örneği döndürür."
Kaynak: Python’da Plotly Express.
Plotly express, Plotly kütüphanesine önerilen giriş noktası olsa da, daha fazla esneklik sunduğu için histogramımızın görünümünü özelleştirmek üzere graph_objects kullanacağız.
Plotly histogramın görünümünü özelleştirme
Şu anki histogramımız epey sade. Başlığımız için kullandığımız yazı tipini değiştirerek ve eksen etiketleri ekleyerek biraz canlandıralım.
# Create histogram
fig = go.Figure(data=[go.Histogram(x=olympic_data.age)])
fig.update_layout(
# Set the global font
font = {
"family":"Times new Roman",
"size":16
},
# Update title font
title = {
"text": "Distribution of Athletes age",
"y": 0.9, # Sets the y position with respect to `yref`
"x": 0.5, # Sets the x position of title with respect to `xref`
"xanchor":"center", # Sets the title's horizontal alignment with respect to its x position
"yanchor": "top", # Sets the title's vertical alignment with respect to its y position. "
"font": { # Only configures font for title
"family":"Arial",
"size":20,
"color": "red"
}
}
)
# Add X and Y labels
fig.update_xaxes(title_text="Age")
fig.update_yaxes(title_text="Number of Athletes")
# Display plot
fig.show()
Şekil 5: Güncellenmiş başlık ve eklenmiş eksen etiketleriyle Plotly histogram.
Bu eklemelerle histogramımız daha bilgilendirici oldu.
Sırada her bir kutunun boyutunu değiştirmek var.
# Create histogram
fig = go.Figure(data = [
go.Histogram(
x = olympic_data.age,
xbins=go.histogram.XBins(size=5) # Change the bin size to 5
)
]
)
Şekil 6: Kutu boyutu 5 olan Plotly histogram.
Yukarıdaki kodda, go.Histogram örneğindeki xbins parametresini bir go.histogram.Xbins örneğine ayarladık ve istediğimiz kutu boyutunu bu örneğin bir parametresi olarak tanımladık. Bunu uyumlu özelliklere sahip bir dict nesnesiyle de yapabileceğimizi unutmayın.
Son olarak, görselleştirmenin biraz daha öne çıkması için kutuların rengini turuncuya çevirelim.
# Create histogram
fig = go.Figure(data = [
go.Histogram(
x = olympic_data.age,
xbins=go.histogram.XBins(size=5), # Change the bin size
marker=go.histogram.Marker(color="orange") # Change the color
)
]
)
Şekil 7: Turuncu kutularla Plotly histogram.
Çok daha iyi.
Yukarıdaki kodda, go.Histogram örneğindeki marker parametresini bir go.histogram.Marker örneğine ayarladık ve istediğimiz rengi bu örneğin bir parametresi olarak tanımladık.
Bununla birlikte, örneğin üzerine gelme metni eklemek gibi, Plotly histogramımızda yapabileceğimiz başka birçok özelleştirme vardır.
Üzerine gelme metnini etkinleştirme
Mevcut histogramda bir çubuğun üzerine geldiğinizde, her çubuğun neyi temsil ettiğine dair metin görüntülenir – bkz. Şekil 8.

Şekil 8: Histogramımız üzerinde gezinirken görüntülenen mevcut üzerine gelme metni.
Bu pek sezgisel değil. Veri görselleştirme yaparken, grafiklerimizin – üzerine gelme metnine kadar – kendi kendini açıklayıcı olmasını isteriz. Bu nedenle, bir kutunun üzerine geldiğimizde görüntülenen bilgileri güncelleyelim.
# Create histogram
fig = go.Figure(data = [
go.Histogram(
x = olympic_data.age,
xbins=go.histogram.XBins(size=5), # Change the bin size
marker=go.histogram.Marker(color="orange"), # Change the color
hovertemplate="<br>".join([
"Age Range: %{x}",
"Number of Athletes: %{y}"]) # Make hover text more informative
)
]
)
Şekil 9: Güncellenmiş üzerine gelme metni bilgisi.
Bir kutunun üzerine geldiğimizde gösterilen metin çok daha bilgilendirici hâle geldi; bu da görselleştirmemizi yorumlamayı kolaylaştırıyor. Bunu, go.Histogram örneğimizdeki hovertemplate parametresini güncelleyerek yaptık.
Filtreleme seçenekleri ekleme
Eğitimde daha önce, age, height, weight ve year özelliklerini içeren bir histogram oluşturmayı bekleyebileceğimizi söylemiştik. Her biri için ayrı ayrı histogram oluşturmamıza gerek yok.
Bunun yerine, tek bir histogram oluşturup görselleştirmede hangi özelliğin gösterileceğini değiştirmeye olanak tanıyan filtre düğmeleri ekleyebiliriz.
Koddaki görünümü şöyle.
"""
Starter code provided by vestland on StackOverflow
Link: https://bit.ly/3ipqOMo
"""
# continuous features
continuous_vars = ["age", "height", "weight", "year"]
# plotly
fig = go.Figure()
# set up ONE trace
fig.add_trace(
go.Histogram(x = olympic_data.age,
xbins=go.histogram.XBins(size=5), # Change the bin size
marker=go.histogram.Marker(color="orange"), # Change the color
)
)
buttons = []
# button with one option for each dataframe
for col in continuous_vars:
buttons.append(dict(method='restyle',
label=col,
visible=True,
args=[{"x":[olympic_data[col]],
"type":'histogram', [0]],
)
)
# some adjustments to the updatemenus
updatemenu = []
your_menu = dict()
updatemenu.append(your_menu)
updatemenu[0]['buttons'] = buttons
updatemenu[0]['direction'] = 'down'
updatemenu[0]['showactive'] = True
# add dropdown menus to the figure
fig.update_layout(showlegend=False, updatemenus=updatemenu)
fig.show()
Şekil 10: Tek bir görselleştirme üzerinde kullanıcıların çeşitli özellikler arasında geçiş yapmasına imkân tanıyan filtrelerin uygulandığı histogram.
İşte bu kadar; Olimpiyat Verileriyle Plotly Histogram Oluşturma çalışma kitabına mutlaka göz atın ve bu eğitimde oluşturduklarımızla oynamayı deneyin.
Kapanış
Artık Plotly Python’da nasıl histogram oluşturacağınızı biliyorsunuz; Bu eğitimde şunları ele aldık:
- Histogram nedir ve nasıl çalışır
- Veri analizinde veri görselleştirmenin önemi
- DataLab ile nasıl başlanır
- Plotly’de nasıl histogram oluşturulur
- Histogramınızı özelleştirmenin farklı yolları
- Filtreleri nasıl uygularsınız
Histogram oluşturma veya Plotly kullanımıyla ilgili daha fazla kaynak arıyorsanız aşağıdaki bağlantılara göz atın:
