Ana içeriğe geç

Python Pasta Grafiği: Pandas ve Matplotlib ile Oluşturun ve Biçimlendirin

Python’un Matplotlib ve Pandas kütüphanelerini kullanarak pasta grafikleri nasıl oluşturup geliştireceğinizi öğrenin. Net, okunabilir görseller için pratik kod örnekleri ve temel tasarım ipuçlarını keşfedin.
· 7 dk. oku

Yapay Zeka ile Keşfedin

Pasta grafikler, oranları görselleştirmek için en popüler grafik türlerinden biridir. Muhtemelen artık onları biliyorsunuzdur; bilmiyorsanız, farklı boyutlarda dilimlere ayrılmış büyük bir pasta ya da yuvarlak bir İsviçre peyniri hayal edin. 

Python, pasta grafikleri oluşturmak için birden fazla yol sunar. Bu eğitimde, Python’da en popüler iki veri analizi paketi olan Matplotlib ve Pandas ile nasıl pasta grafikleri oluşturulacağına odaklanacağız. Yazıyı yöntemlere göre yapılandıracağız; böylece iş akışınıza en uygun yaklaşım ve sözdizimine odaklanabilirsiniz. 

Bunlara ek olarak, pasta grafiklerinin iyileştirilmesine, sorun gidermeye, erişilebilirliğe ve kullanılabilirliğe yönelik bazı ipuçları da vereceğiz. Son olarak, belirli senaryolarda pasta grafiklerden daha uygun olabilecek diğer grafik alternatiflerini de göz önünde bulunduracağız.

Python’da Pasta Grafiği Oluşturmanın Yolları 

Size Python’da pasta grafiği oluşturmanın iki farklı yolunu göstereceğim; hangisini tercih edeceğinize siz karar verin. Her ikisi de popüler ve iyi seçeneklerdir, bu yüzden yanlış yapmanız zor. 

Yöntem 1: Matplotlib ile pasta grafikleri

Hadi Matplotlib ile pasta grafiği nasıl oluşturulur, onu inceleyerek başlayalım. 

Bu bölümde, DataCamp kurs kataloğunda yer alan farklı kurslara ilişkin verileri analiz edeceğiz; kataloğu burada bulabilirsiniz. (Kataloğu inceledim, her teknoloji için mevcut kurs sayısını saydım ve bu bilgilerle bir tablo oluşturdum.)

Grafik nasıl oluşturulur

İlk pasta grafiğimizi Matplotlib ile oluşturmak için plt.pie() fonksiyonunu kullanabiliriz. Farklı veri ve yapay zekâ teknolojileri için mevcut kurs sayılarını içeren bir listeyi (her biri bir dilim boyutunu temsil eder) ve teknolojilerin adlarını içeren ikinci bir listeyi kullanacağız; bu adları grafiğe labels parametresiyle ekleyeceğiz. Alternatif olarak, ayrı bir açıklama eklemek için plt.legend() de kullanabiliriz.

Her zamanki gibi, Matplotlib grafiğini doğru görüntülemek için kodunuzun sonunda plt.show() çalıştırmayı unutmayın.

import pandas as pd
import matplotlib.pyplot as plt

courses = [164, 127, 31, 31,12, 11]
labels = ['Python','R','SQL','Power BI','Excel','ChatGPT']
dictionary = {'courses':courses, 'labels':labels}
python_pie_chart_df = pd.DataFrame(dictionary)

plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels)
plt.show()

açıklamalı temel Python pasta grafiği

plt.pie(x = python_pie_chart_df.courses)
plt.legend(labels = python_pie_chart_df.labels, loc = [0.95,0.35])
plt.show()

temel Python pasta grafiği

Ayrıca, autopct parametresiyle her dilimin yüzdesini de ekleyebiliriz. Aşağıdaki örnekte, dilimlerin boyutunu bir ondalık basamakla gösteriyoruz.

plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, autopct='%1.1f%%') 
plt.show()

etiketli Python pasta grafiği

Grafik nasıl özelleştirilir

Matplotlib’teki pasta grafikleri ve onları oluşturan dilimler oldukça özelleştirilebilir. pie.plot() fonksiyonunun sunduğu seçeneklerden bazılarına bakalım. 

Dilimlerin rengini değiştirmek için colors parametresini kullanabiliriz. Bu parametreyi, grafiğimize DataCamp’in renk paletini uygulamak için kullanacağız. 

datacamp_palette = ['#03ef62','#06bdfc','#ff6ea9','#ff931e','#ff5400','#7933ff']
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, colors = datacamp_palette, autopct='%1.1f%%')
plt.show()

özel renk paletli Python pasta grafiği

Çok daha iyi görünüyor, değil mi? Ama pasta grafiğimizi özelleştirmek için yapabileceğimiz daha çok şey var. Örneğin, sırasıyla labeldistance ve pctdistance parametrelerini kullanarak etiketlerin ve yüzdelerin uzaklığıyla oynayabilir ve startangle parametresiyle dilimlemeye başlanacak açıyı seçebiliriz.

plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, colors = datacamp_palette, autopct='%1.1f%%', 
pctdistance= 0.8, labeldistance=1.1, startangle=180)

plt.show()

Son olarak, bir sunum yapıyorsunuz ve R kurslarına odaklanmak istiyorsunuz diyelim. Bunu vurgulamanın kullanışlı bir yolu, aşağıdaki gibi explode parametresiyle o dilimi patlatmaktır:

explode = (0, 0.1, 0, 0, 0, 0)  # only "explode" the 2nd slice (i.e. 'R')

plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, 
        colors = datacamp_palette, autopct='%1.1f%%', 
        pctdistance= 0.8, labeldistance=1.1, 
        startangle=180, explode=explode)

plt.show()

Grafik nasıl kaydedilir

Pasta grafiğinizi oluşturduktan sonra, onu iş arkadaşlarınızla paylaşmaya hazırsınız. Bunu, dosya adını parametre olarak alan ve .png, .jpg, .svg veya .pdf gibi farklı formatlarda kaydetmenize olanak tanıyan plt.savefig() fonksiyonuyla yapabilirsiniz. Ayrıca, görüntünün çözünürlüğünü değiştirmek için dpi kullanabilirsiniz. 

İşte pastanızı 200 dpi çözünürlükte .jpg formatında kaydetmenin bir örneği.

plt.pie(x = df.courses, labels = df.labels, 
        colors = datacamp_palette, autopct='%1.1f%%', 
        pctdistance= 0.8, labeldistance=1.1, 
        startangle=180, explode=explode)

plt.savefig('demo.jpg', dpi =200)

Görselleştirmeleri doğru şekilde kaydetme hakkında daha fazla bilgiyi Matplotlib ile Veri Görselleştirmeye Giriş kursumuzda bulabilirsiniz.

Yöntem 2: Pandas ile pasta grafikleri

Artık Matplotlib ile pasta grafiği oluşturmayı bildiğinize göre, bunun Pandas’ta nasıl çalıştığına bakalım.

Grafik nasıl oluşturulur

Pandas’ta, çeşitli grafik türlerini çizmek için kullanılabilen bir plot() yöntemi vardır. Bu yöntem, Pandas’taki hem DataFrame hem de Series nesnelerinde çalışır. plot() yöntemindeki kind argümanı, grafik türünü belirtmenize yardımcı olur. Bizim durumumuzda, kind ='pie' kullanarak bir pasta grafiği oluşturabilirsiniz. Ayrıca, her dilime bir ad eklemek için labels parametresini ve her dilimin yüzdesini eklemek için autopct parametresini kullanabilirsiniz.

python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%')
plt.show()

Grafik nasıl özelleştirilir

Pandas’ın plot() yöntemi hızlı çizim için bir araç sağlar ancak özelleştirme seçenekleri sınırlıdır. Neyse ki yöntem, arka uçta Matplotlib’i kullanır; bu da görselleştirmenizi özelleştirmek için yöntemin dışında Matplotlib sözdizimini kullanabileceğiniz anlamına gelir. Aşağıda, Pandas ve Matplotlib’i nasıl birleştirebileceğinize dair bir örnek bulabilirsiniz.

ax= python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%', 
                       colors=datacamp_palette, figsize=(5,5))

ax.set_title('Pie Chart DatataCamp Courses')
ax.set_ylabel(None)

plt.show()

Grafik nasıl kaydedilir

Pandas’ta pasta grafikleri kaydetmek, Matplotlib ile tamamen aynıdır; çünkü Pandas, kaputun altında Matplotlib’e dayanır.

ax= python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%', 
                       colors=datacamp_palette, figsize=(5,5))

ax.set_title('Pie Chart DatataCamp Courses')
ax.set_ylabel(None)

plt.savefig('demo.png')

Pasta Grafiklerde Sorun Giderme

Pasta grafiklerinizin doğru görüntülendiğinden emin olmak için Matplotlib’e doğru verileri sağlamalısınız. Bu, veri çerçevenizde veri temizleme tekniklerini her zaman uygulamanız gerektiği anlamına gelir; örneğin pd.dropna() ile boş değerleri silmek ve girdi sütunlarınız için doğru veri türlerini ayarlamak.

Ayrıca, etkileyici ve çarpıcı bir pasta grafiği sunmada özelleştirme kilit rol oynar. Ancak, Pandas kullanıyorsanız patlatma (explode) gibi gelişmiş özelleştirmelerin desteklenmeyebileceğini unutmayın. Daha önce belirtildiği gibi, pasta grafiğiniz üzerinde daha fazla denetime ihtiyacınız varsa, betiklerinize Matplotlib kodu eklemeniz gerekebilir.

Erişilebilirlik ve Kullanılabilirliği Artırma

Pasta grafiklerinizi sunarken iyi uygulamalara bağlı kalmalısınız.

  • Kitlenizi değerlendirin: Altın kural olarak, görselleştirmenizin hitap ettiği kitleyle empati kurmalısınız. Bu, kitlenizin uzmanlık alanını, teknik bilgi düzeyini ve ilgi alanlarını iyi anlamayı gerektirir. 
  • Gereksiz unsurları temizleyin: Okunması güç, kalabalık görselleştirmelerden kaçınmak için, eklediğiniz şeyin kitle için ilgili olup olmadığını kendinize sorun ve gereksiz unsurları olabildiğince kaldırın. Pasta grafiklerde 3B efektler veya gölgelerden kaçınmalısınız; çünkü bunlar yorumlamayı zorlaştırabilir. 
  • Yazı tiplerine dikkat edin: Farklı yazı tipleri ve boyutlar kullanmak cazip gelse de, genel bir kural olarak tek bir yazı tipine ve en fazla üç farklı boyuta bağlı kalın. Yazı tipi hiyerarşisini izlemeli, başlıkları gövdeden daha büyük tutmalı ve önemli unsurları ve başlıkları vurgulamak için kalın yazı tipi kullanmalısınız. 
  • Renkleri yaratıcı kullanın: Renk, her veri görselleştirmenin en dikkat çekici unsurlarından biridir. Bu nedenle, görselleştirmenizin renk şemasını seçerken özen gösterin. Bu, görselleştirmeleriniz arasında tutarlı bir renk paleti kullanmayı ve gruplar, önem düzeyleri ve farklı bilgi hiyerarşileri arasında sistematik olarak renk kullanmayı içerir.
  • Diğer cihazlarda test edin: Görsellerinizin birden fazla cihazda nasıl göründüğünü test etmek her zaman iyi bir fikirdir.

Veri görselleştirme bir sanat olarak kabul edilebilir. Sezgi ve zevk fark yaratabilir; ancak her zaman arkasındaki teoriyi de dikkate almalısınız. Etkili veri görselleştirme için en iyi uygulamalar hakkında daha fazla bilgi edinmek için Veri Öyküleme ve İletişim Cheat Sheet’imize göz atın. Ayrıca, panolarla çalışıyorsanız, Pano Tasarımında En İyi Uygulamalar hakkındaki bu makaleyi okumanızı öneririz.

Pasta Grafiklere Alternatifler

Açık konuşmak gerekirse, pasta grafikler en çok eleştirilen grafik türleri arasındadır. İnsanların açıları yorumlamada pek iyi olmadığı kanıtlanmıştır. Bunu daha önce kullandığımız pasta grafiğiyle gösterebiliriz. Excel ve ChatGPT dilimlerini düşünün. İlk bakışta hangisinin daha büyük açıya sahip olduğunu söyleyebilir misiniz?

Muhtemelen hayır; bu yüzden pek çok veri görselleştirme uzmanı, özellikle çok sayıda kategoriyle çalışırken oranları göstermek için çubuk grafikler ve yığılmış çubuk grafikler, ağaç haritaları veya hatta halka grafikler gibi diğer grafiklerin kullanılmasını önerir. Bu alternatifler hakkında daha fazla bilgiyi Veri Grafiği Türleri ve Python’da Nasıl Oluşturulurlar yazımızda bulabilirsiniz.

Sonuç

Eğitimin sonuna ulaştığınız için tebrikler. Python, pasta grafikleri oluşturmak için çeşitli kütüphaneler ve yaklaşımlar sunan son derece çok yönlü bir programlama dilidir. Bu eğitimde Matplotlib ve Pandas ile nasıl pasta grafikleri oluşturulacağını inceledik. Her ikisi de işe eşit derecede uygundur ve belirgin benzerlikleri vardır. Amaç birini seçmek değil; ihtiyaçlarınıza ve iş akışınıza göre bunları birbirinin yerine kullanmaktır. 

Pasta grafikleri ve daha genel olarak Python’da veri görselleştirme hakkında daha fazla bilgi edinmek istiyorsanız, DataCamp yardımcı olmaya hazır. Görselleştirme sihirbazı olmaya hazırlanmak için özel materyallerimize göz atın!

Javier Canales Luna

Yazar

Javier Canales Luna

Serbest çalışan bir veri analistiyim; dünya genelinde şirketler ve kuruluşlarla veri bilimi projelerinde iş birliği yapıyorum. Ayrıca 2+ yıllık deneyime sahip bir veri bilimi eğitmeniyim. Düzenli olarak İngilizce ve İspanyolca veri bilimiyle ilgili makaleler yazıyorum; bunların bir kısmı DataCamp, Towards Data Science ve Analytics Vidhya gibi köklü internet sitelerinde yayımlandı. Siyaset bilimi ve hukuk geçmişine sahip bir veri bilimci olarak amacım, kamu politikası, hukuk ve teknolojinin kesişiminde çalışmak; fikirlerin gücünden yararlanarak özellikle iklim krizi olmak üzere acil sorunların üstesinden gelmemize yardımcı olabilecek yenilikçi çözümler ve anlatılar geliştirmek. Kendimi otodidakt bir kişi, sürekli öğrenen ve disiplinlerarasılığın güçlü bir savunucusu olarak görüyorum. Yeni şeyler öğrenmek için asla geç değildir.

SSS

Pasta grafiği nedir ve ne zaman kullanmalıyım?

Pasta grafiği, bir dairenin bütündeki oranları temsil eden dilimlere ayrıldığı bir grafik türüdür. Bu nedenle oranları temsil etmek için uygundur.

Matplotlib’te nasıl pasta grafiği oluşturabilirim?

Matplotlib ile pasta grafiği oluşturmanın en kolay yolu, çeşitli özelleştirme parametreleri sunan plt.pie() fonksiyonudur.

Pandas’ta nasıl pasta grafiği oluşturabilirim?

Pandas’ta pasta grafiği oluşturmanın en kolay yolu, Series.plot.(kind=’pie’) yöntemidir. Bu yöntem, Pandas DataFrame’lerinde hızlı görselleştirme sağlar ancak Matplotlib’e kıyasla sınırlı özelleştirme seçeneklerine sahiptir.

Pasta grafikleri oluştururken en iyi uygulamalar nelerdir?

Görselleştirmelerinizi oluştururken her zaman en iyi uygulamaları izlemeniz gerekir. Buna, pasta grafiklerinizi olabildiğince basit tutmak, gereksiz unsurlardan kaçınmak, sezgisel renk paletleri seçmek ve grafiği kitlenize göre uyarlamak dahildir.

Pasta grafiklerin başlıca sınırlamaları nelerdir?

İnsanlar açıları yorumlamada çok iyi değildir; bu nedenle pek çok görselleştirme uzmanı, oranları görselleştirmek için çubuk grafikleri gibi diğer grafiklerin kullanılmasını önerir.

Konular

İlgili