Ana içeriğe atla

Veri Bilimi için Orta Düzey Python: Matplotlib

Matplotlib'in fonksiyonlarıyla gerçek verileri görselleştirmeyi öğrenin.
Güncel 2 Eki 2026  · 11 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Kurs Alıntısı: Veri Bilimi için Orta Düzey Python - Matplotlib

Aşağıda, Veri Bilimi için Orta Düzey Python kursunun ilk bölümünden bir alıntı—video ve döküm—bulunmaktadır. Etkileşimli alıştırmalar da dahil olmak üzere tam bölüme buradan ulaşabilirsiniz.

Matplotlib ile temel grafikler

Merhaba, ben Filip, DataCamp'te veri bilimcisiyim. Bu orta düzey Python kursunda, veri bilimi için Python becerilerinizi daha da geliştireceksiniz. Verileri görselleştirmeyi ve verileri yeni veri yapılarında saklamayı öğreneceksiniz. Bu süreçte, betiklerinizin ve algoritmalarınızın akışını özelleştirmek için ihtiyaç duyacağınız denetim yapılarında ustalaşacaksınız. Bu bölümü, öğrendiklerinizi birleştirerek havalı bir problemi çözeceğiniz bir vaka çalışmasıyla bitireceğiz.

Bu ilk bölüm, veri analizi için çok önemli bir parça olan veri görselleştirmeye ayrılmıştır. Öncelikle, veri kümenizi keşfetmek için görselleştirmeyi sürekli kullanacaksınız. Verinizi ne kadar iyi anlarsanız, içgörüleri o kadar iyi çıkarabilirsiniz. Ve bu içgörüleri bulduğunuzda, onları başkalarıyla paylaşmak için yine görselleştirmeye ihtiyacınız olacak. Örneğin, şu güzel grafiğe bir göz atın.

Bu grafik, İsveçli profesör Hans Rosling tarafından yapılmıştır. Küresel kalkınma hakkındaki konuşmaları milyonlarca kez izlendi. Onları bu kadar etkileyici kılan, güzel grafikler oluşturarak verilerin kendi hikâyesini anlatmasına olanak tanımasıdır. Burada her balonun bir ülkeyi temsil ettiği bir balon grafiği görüyoruz. Balon ne kadar büyükse, ülkenin nüfusu da o kadar büyüktür; burada en büyük iki balon Çin ve Hindistan'dır.

İki eksen var. Yatay eksen, kişi başına düşen GSYİH'yı ABD doları cinsinden gösteriyor. Dikey eksen, yaşam beklentisini gösteriyor. Kişi başına düşen GSYİH'si daha yüksek ülkelerde insanların daha uzun yaşadığı açıkça görülüyor. Yine de, aynı gelir seviyesindeki ülkeler arasında yaşam beklentisinde büyük farklılıklar var.

Peki bunları neden anlatıyorum? Çünkü bu bölümün sonunda, bu güzel grafiği kendiniz oluşturabileceksiniz.

Python'da birçok görselleştirme paketi var, ancak hepsinin atası matplotlib'dir. Onun pyplot alt paketine ihtiyacınız olacak. Alışıldık olarak bu alt paket plt kısaltmasıyla içe aktarılır, şöyle.

İlk örneğimiz için, dünya nüfusunun zaman içindeki değişimine dair bazı içgörüler edinmeye çalışalım. Burada yıllardan oluşan bir liste, year, ve karşılık gelen nüfuslardan oluşan, milyar cinsinden ifade edilen bir liste, pop var. Örneğin 1970 yılında, Dünya'da 3,7 milyar insan yaşıyordu.

Bu veriyi bir çizgi grafik olarak çizdirmek için plt.plot() çağırır ve iki listemizi argüman olarak kullanırız. İlk argüman yatay eksene, ikincisi dikey eksene karşılık gelir. Şimdi bir grafiğin hemen belireceğini düşünebilirsiniz ama Python biraz tembeldir. Grafiği gerçekten göstermek için show() fonksiyonunu bekler. Bunun nedeni, grafiği göstermeden önce başlıklar ve etiket özelleştirmeleri gibi bazı ek unsurlar eklemek isteyebilmenizdir. Buna daha sonra biraz daha değineceğim. Şunu unutmayın: plot() fonksiyonu Python'a neyin ve nasıl çizileceğini söyler. show() ise grafiği gerçekten gösterir.

Grafiğimize baktığımızda, yatay eksende yılların, dikey eksende ise nüfusların gösterildiğini görüyoruz. Dört veri noktası var ve Python bunların arasını bir çizgiyle birleştiriyor. 1950'de dünya nüfusu yaklaşık 2,5 milyardı. 2010'da yaklaşık 7 milyar oldu. Yani dünya nüfusu altmış yılda neredeyse üçe katlandı; bu oldukça ürkütücü. Ya nüfus böyle artmaya devam ederse? Dünya aşırı kalabalık mı olacak? Alıştırmalarda öğreneceksiniz.

Önce sizi bir başka grafik türüyle tanıştırayım: saçılım grafiği (scatter). Bunu oluşturmak için, önceki koddaki başlangıç noktasından yola çıkabiliriz. Bu kez, plot fonksiyonunu scatter olarak değiştiriyorsunuz. Ortaya çıkan saçılım grafiği, tüm bireysel veri noktalarını basitçe çizer; Python noktaları bir çizgiyle birleştirmez. Pek çok uygulama için saçılım grafiği, çizgi grafiğine göre daha iyi bir seçimdir; bu yüzden scatter fonksiyonunu aklınızda tutun. Ayrıca, verinizin yalnızca dört veri noktasına dayandığını açıkça gördüğünüz için bunun daha “dürüst” bir görselleştirme yolu olduğunu da söyleyebilirsiniz.

Artık matplotlib'in temellerini ele aldığımıza göre, sıra sizde: harika grafikler oluşturun!


# define a simple function
import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.plot(year, pop)
plt.show()

import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.scatter(year, pop)
plt.show()

Histogram

Bu videoda histogramı tanıtacağım. Histogram, verinizi keşfetmek için çok kullanışlı bir görselleştirme türüdür. Değişkenlerinizin dağılımı hakkında fikir edinmenize yardımcı olabilir. Nasıl çalıştığını görmek için, 0 ile 6 arasında 12 değer hayal edin. Bunları burada bir sayı doğrusuna yerleştirdim. Bu değerler için bir histogram oluşturmak için, doğruyu eşit parçalara, yani kutucuklara (bin) bölebilirsiniz. Diyelim ki her biri genişliği 2 olan 3 kutucuğa bölüyorsunuz. Sonra, her kutucukta kaç veri noktası olduğunu sayarsınız. İlk kutucukta 4, ikincide 6 ve üçüncüde 2 veri noktası var. Son olarak, her kutucuk için bir çubuk çizersiniz. Çubuğun yüksekliği, o kutucuğa düşen veri noktalarının sayısına karşılık gelir. Sonuç, 12 değerin nasıl dağıldığına güzel bir genel bakış sunan bir histogramdır. Değerlerin çoğu ortada toplanmıştır, ancak 2'nin altında 4'ün üstündekilerden daha fazla değer vardır.

Elbette, matplotlib de histogramlar oluşturabilir. Önceki gibi, matplotlib içindeki pyplot paketini içe aktararak başlamalısınız. Ardından hist() fonksiyonunu kullanabilirsiniz. Belgelerini açalım. Belirleyebileceğiniz bir sürü argüman var, ancak burada ilk ikisi en önemlileri. x, histogramını oluşturmak istediğiniz değerlerin bir listesi olmalıdır. İkinci argüman olan bins ile verilerin kaç kutucuğa bölüneceğini Python'a söyleyebilirsiniz. Bu sayıya göre, hist() tüm kutucuklar için uygun sınırları otomatik olarak bulacak ve her birinde kaç değer olduğunu hesaplayacaktır. bins argümanını belirtmezseniz, varsayılan olarak 10 olur.

Dolayısıyla, az önce gördüğünüz histogramı üretmek için, 12 değerden oluşan bir liste oluşturarak başlayalım. Sonra, bu listeyi girdi olarak verip hist() çağırırsınız; böylece x argümanıyla eşleşir. Değerlerin üç kutucuğa bölünmesi için bins argümanını 3 olarak belirledim. Son olarak show fonksiyonunu çağırırsanız, ortaya güzel bir histogram çıkar. Histogramlar, büyük resmi göstermek için gerçekten kullanışlıdır. Örneğin, şu sözde nüfus piramidine bir bakın. Avrupa Birliği'nde, hem erkekler hem de kadınlar için yaş dağılımı gösteriliyor. Histogramların 90 derece çevrildiğine dikkat edin; artık kutular yatay. 40 ile 44 yaşları arasındaki kutular en büyük: 20 milyon erkek ve 20 milyon kadın var. Bunlar sözde baby boomer kuşağı.

Bunlar 2010 yılına ait rakamlar. Sizce 2050'de neler değişmiş olacak? Bir bakalım. Dağılım daha yassı ve baby boomer kuşağı yaşlanmış. Göz açıp kapayıncaya kadar, demografik yapının zaman içinde nasıl değişeceğini kolayca görebilirsiniz. İşte histogramların gerçek gücü! Şimdi alıştırmalara geçin ve histogramlarla kendiniz deney yapın!


values = [0,0.6,1.4,1.6,2.2,2.5,2.6,3.2,3.5,3.9,4.2,6]
import matplotlib.pyplot as plt
plt.hist(values,bins=3)
plt.show()

Özelleştirme

Bir grafik oluşturmak ayrı, mesajı çok net veren doğru grafiği yapmak ayrı bir şeydir. Her görselleştirme için birçok seçenek vardır. Öncelikle, farklı grafik türleri bulunur. Ve her grafik için sonsuz sayıda özelleştirme yapabilirsiniz. Renkleri, şekilleri, etiketleri, eksenleri vb. değiştirebilirsiniz. Seçim bir, veriye; iki, bu verilerle anlatmak istediğiniz hikâyeye bağlıdır. Bu kadar çok olası özelleştirme olduğundan, bunu öğrenmenin en iyi yolu örneklerdir.

Basit bir çizgi grafik oluşturmak için bu betikteki kodla başlayalım. İlk videoda oluşturduğumuz çizgi grafeğine benziyor, ancak bu kez year ve pop listeleri, Birleşmiş Milletler tarafından 2100 yılına kadar öngörülen daha fazla veri içeriyor. Bu betiği çalıştırırsak, oldukça güzel bir grafik elde ederiz: devam eden nüfus patlamasının yüzyılın sonuna doğru yavaşlayacağını gösteriyor.

Ancak bazı şeyler geliştirilebilir. İlk olarak, özellikle grafiği ilk kez görenler için, hangi verileri gösterdiğimiz daha net olmalı. İkincisi, grafik gerçekten nüfus patlamasına dikkat çekmeli. Her zaman yapmanız gereken ilk şey eksenlerinizi etiketlemektir. Bunu, xlabel() ve ylabel() fonksiyonlarını ekleyerek yapalım. Girdi olarak, eksenlerin yanına yerleştirilecek metinleri veriyoruz. Bu fonksiyonları show() metodunu çağırmadan önce çağırdığınızdan emin olun; aksi takdirde özelleştirmeleriniz görünmez. Betiği tekrar çalıştırırsak, bu kez eksenler açıklamalı olur. Grafiğimize bir başlık da ekleyeceğiz; title fonksiyonuyla. Argüman olarak gerçek başlığı, 'World Population Projections' veriyoruz. Ve başlık geldi!

Yani, xlabel, ylabel ve title kullanarak, grafikteki veriler hakkında okura daha fazla bilgi verebiliriz: artık en azından grafiğin ne hakkında olduğunu söyleyebilirler. Nüfus artışını perspektife oturtmak için, y ekseninin sıfırdan başlamasını istiyorum. Bunu yticks() fonksiyonuyla yapabilirsiniz. İlk girdi bir listedir; bu örnekte 0'dan 10'a kadar, 2'şer aralıklarla sayılar var. Bunu çalıştırırsak, grafik değişir: eğri yukarı kayar. Artık 1950'de bile bu gezegende yaklaşık 2,5 milyar insan olduğu netleşiyor.

Ardından, milyar cinsinden konuştuğumuzu netleştirmek için, yticks() fonksiyonuna, çizelti işaretlerinin gösterim adlarını içeren ikinci bir argüman ekleyebiliriz. Bu listenin, ilk listeyle aynı uzunlukta olması gerekir. 0 işareti 0, 2 işareti 2B, 4 işareti 4B şeklinde adlandırılır. Bu arada burada B, milyar anlamına gelir. Betiğin bu sürümünü çalıştırırsak, etiketler buna göre değişecektir, harika.

Son olarak, son 60 yıldaki nüfus patlamasını vurgulamak için biraz daha tarihsel veri ekleyelim. Vikipedi'de 1800, 1850 ve 1900 yıllarına ait dünya nüfusu verilerini buldum. Bunları liste biçiminde yazıp pop ve year listelerine artı işaretiyle ekleyebilirim. Betiği bir kez daha çalıştırırsam, grafiğe üç veri noktası daha eklenir ve daha tamamlayıcı bir tablo sunar. İşte böylece ortalama bir çizgi grafiğini, net bir hikâye anlatan bir görsele dönüştürürsünüz! Sıra sizde. Alıştırmalara geçin, dünya gelişimi grafiğini adım adım özelleştirin ve bir sonraki Hans Rosling olun!


import matplotlib.pyplot as plt
import pandas as pd
year = list(range(1950, 2101))
pop = [2.53,2.57,2.62,2.67,2.71,2.76,2.81,2.86,2.92,2.97,3.03,3.08,3.14,3.2,3.26,3.33,3.4,3.47,3.54,3.62,3.69,3.77,3.84,3.92,4.,4.07,4.15,4.22,4.3,4.37,4.45,4.53,4.61,4.69,4.78,4.86,4.95,5.05,5.14,5.23,5.32,5.41,5.49,5.58,5.66,5.74,5.82,5.9,5.98,6.05,6.13,6.2,6.28,6.36,6.44,6.51,6.59,6.67,6.75,6.83,6.92,7.,7.08,7.16,7.24,7.32,7.4,7.48,7.56,7.64,7.72,7.79,7.87,7.94,8.01,8.08,8.15,8.22,8.29,8.36,8.42,8.49,8.56,8.62,8.68,8.74,8.8,8.86,8.92,8.98,9.04,9.09,9.15,9.2,9.26,9.31,9.36,9.41,9.46,9.5,9.55,9.6,9.64,9.68,9.73,9.77,9.81,9.85,9.88,9.92,9.96,9.99,10.03,10.06,10.09,10.13,10.16,10.19,10.22,10.25,10.28,10.31,10.33,10.36,10.38,10.41,10.43,10.46,10.48,10.5,10.52,10.55,10.57,10.59,10.61,10.63,10.65,10.66,10.68,10.7,10.72,10.73,10.75,10.77,10.78,10.79,10.81,10.82,10.83,10.84,10.85]
pop = [1,1.262,1.650] + pop
year = [1800,1850,1900] + year
plt.plot(year, pop)
plt.xlabel('Year')
plt.ylabel('Population')
plt.title('World Population Projections')
plt.yticks([0,2,4,6,8,10],['0','2B','4B','6B','8B','10B'])
plt.show()
Konular
Veri Görselleştirme
İ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