12 KiB
Oranları Görselleştirme
![]() |
|---|
| Oranları Görselleştirme - Sketchnote by @nitya |
Bu derste, mantarlarla ilgili bir veri seti kullanarak oranları görselleştireceksiniz. Örneğin, bir veri setinde kaç farklı mantar türü bulunduğunu inceleyebilirsiniz. Audubon'dan alınan ve Agaricus ve Lepiota ailelerine ait 23 tür lamelli mantar hakkında detaylar içeren bir veri setini keşfedeceğiz. Aşağıdaki gibi lezzetli görselleştirmelerle denemeler yapacaksınız:
- Pasta grafikleri 🥧
- Donut grafikleri 🍩
- Waffle grafikleri 🧇
💡 Microsoft Research tarafından geliştirilen Charticulator adlı çok ilginç bir proje, veri görselleştirmeleri için ücretsiz bir sürükle-bırak arayüzü sunuyor. Bu projede, mantar veri setini kullandıkları bir eğitim de var! Böylece hem veriyi keşfedebilir hem de kütüphaneyi öğrenebilirsiniz: Charticulator tutorial.
Ders sonrası test
Mantarlarınızı Tanıyın 🍄
Mantarlar oldukça ilginçtir. Hadi bir veri seti içe aktararak onları inceleyelim:
import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()
Bir analiz için harika veriler içeren bir tablo yazdırılır:
| sınıf | şapka şekli | şapka yüzeyi | şapka rengi | morarma | koku | lamel bağlantısı | lamel aralığı | lamel boyutu | lamel rengi | sap şekli | sap kökü | halka üstü yüzey | halka altı yüzey | halka üstü rengi | halka altı rengi | örtü tipi | örtü rengi | halka sayısı | halka tipi | spor baskı rengi | popülasyon | habitat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Zehirli | Konveks | Düzgün | Kahverengi | Morarma | Keskin | Serbest | Yakın | Dar | Siyah | Genişleyen | Eşit | Düzgün | Düzgün | Beyaz | Beyaz | Kısmi | Beyaz | Bir | Sarkan | Siyah | Dağınık | Şehir |
| Yenilebilir | Konveks | Düzgün | Sarı | Morarma | Badem | Serbest | Yakın | Geniş | Siyah | Genişleyen | Kulüp | Düzgün | Düzgün | Beyaz | Beyaz | Kısmi | Beyaz | Bir | Sarkan | Kahverengi | Çok | Çimenlik |
| Yenilebilir | Çan | Düzgün | Beyaz | Morarma | Anason | Serbest | Yakın | Geniş | Kahverengi | Genişleyen | Kulüp | Düzgün | Düzgün | Beyaz | Beyaz | Kısmi | Beyaz | Bir | Sarkan | Kahverengi | Çok | Çayır |
| Zehirli | Konveks | Pullu | Beyaz | Morarma | Keskin | Serbest | Yakın | Dar | Kahverengi | Genişleyen | Eşit | Düzgün | Düzgün | Beyaz | Beyaz | Kısmi | Beyaz | Bir | Sarkan | Siyah | Dağınık | Şehir |
Hemen fark ediyorsunuz ki tüm veriler metinsel. Bu veriyi bir grafik için kullanabilmek adına dönüştürmeniz gerekecek. Aslında, verilerin çoğu bir nesne olarak temsil ediliyor:
print(mushrooms.select_dtypes(["object"]).columns)
Çıktı şu şekilde:
Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor',
'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',
'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',
'stalk-surface-below-ring', 'stalk-color-above-ring',
'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number',
'ring-type', 'spore-print-color', 'population', 'habitat'],
dtype='object')
Bu veriyi alın ve 'sınıf' sütununu bir kategoriye dönüştürün:
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass
Şimdi mantar verilerini yazdırırsanız, zehirli/yenilebilir sınıfına göre kategorilere ayrıldığını görebilirsiniz:
| şapka şekli | şapka yüzeyi | şapka rengi | morarma | koku | lamel bağlantısı | lamel aralığı | lamel boyutu | lamel rengi | sap şekli | ... | halka altı yüzey | halka üstü rengi | halka altı rengi | örtü tipi | örtü rengi | halka sayısı | halka tipi | spor baskı rengi | popülasyon | habitat | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sınıf | |||||||||||||||||||||
| Yenilebilir | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 |
| Zehirli | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 |
Bu tablodaki sırayı takip ederek sınıf kategori etiketlerinizi oluşturursanız, bir pasta grafiği oluşturabilirsiniz:
Pasta!
labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()
İşte, bu iki mantar sınıfına göre verilerin oranlarını gösteren bir pasta grafiği. Etiketlerin sırasını doğru almak oldukça önemlidir, özellikle burada, bu yüzden etiket dizisinin oluşturulma sırasını doğruladığınızdan emin olun!
Donutlar!
Biraz daha görsel olarak ilgi çekici bir pasta grafiği, ortasında bir delik olan bir donut grafiğidir. Verilerimize bu yöntemle bakalım.
Mantarların büyüdüğü çeşitli habitatlara bir göz atın:
habitat=mushrooms.groupby(['habitat']).count()
habitat
Burada verilerinizi habitatlara göre grupluyorsunuz. 7 habitat listelenmiş, bu yüzden donut grafiğiniz için bu etiketleri kullanın:
labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']
plt.pie(habitat['class'], labels=labels,
autopct='%1.1f%%', pctdistance=0.85)
center_circle = plt.Circle((0, 0), 0.40, fc='white')
fig = plt.gcf()
fig.gca().add_artist(center_circle)
plt.title('Mushroom Habitats')
plt.show()
Bu kod bir grafik ve bir merkez çember çizer, ardından bu merkez çemberi grafiğe ekler. Merkez çemberin genişliğini 0.40 değerini değiştirerek düzenleyebilirsiniz.
Donut grafikleri, etiketleri değiştirmek için çeşitli şekillerde ayarlanabilir. Özellikle etiketler okunabilirlik için vurgulanabilir. Daha fazla bilgi için dokümanlara göz atın.
Artık verilerinizi nasıl gruplandıracağınızı ve ardından pasta veya donut olarak nasıl göstereceğinizi bildiğinize göre, diğer grafik türlerini keşfedebilirsiniz. Waffle grafiğini deneyin, bu sadece miktarı keşfetmenin farklı bir yoludur.
Waffle!
'Waffle' türü bir grafik, miktarları 2D kare dizisi olarak görselleştirmenin farklı bir yoludur. Bu veri setindeki mantar şapka renklerinin farklı miktarlarını görselleştirmeyi deneyin. Bunu yapmak için PyWaffle adlı bir yardımcı kütüphane yüklemeniz ve Matplotlib kullanmanız gerekiyor:
pip install pywaffle
Verilerinizden bir segment seçin ve gruplandırın:
capcolor=mushrooms.groupby(['cap-color']).count()
capcolor
Etiketler oluşturup verilerinizi gruplandırarak bir waffle grafiği oluşturun:
import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
'amount': capcolor['class']
}
df = pd.DataFrame(data)
fig = plt.figure(
FigureClass = Waffle,
rows = 100,
values = df.amount,
labels = list(df.color),
figsize = (30,30),
colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)
Bir waffle grafiği kullanarak, bu mantar veri setindeki şapka renklerinin oranlarını açıkça görebilirsiniz. İlginç bir şekilde, birçok yeşil şapkalı mantar var!
✅ Pywaffle, Font Awesome içindeki herhangi bir simgeyi kullanarak grafiklerde simgeleri destekler. Kareler yerine simgeler kullanarak daha ilginç bir waffle grafiği oluşturmak için bazı deneyler yapın.
Bu derste oranları görselleştirmenin üç yolunu öğrendiniz. Öncelikle verilerinizi kategorilere ayırmanız ve ardından verileri göstermek için en iyi yolu seçmeniz gerekiyor - pasta, donut veya waffle. Hepsi lezzetli ve kullanıcıya bir veri setinin anlık görüntüsünü sunar.
🚀 Meydan Okuma
Bu lezzetli grafikleri Charticulator ile yeniden oluşturmaya çalışın.
Ders sonrası test
Gözden Geçirme ve Kendi Kendine Çalışma
Bazen pasta, donut veya waffle grafiği kullanmanın ne zaman uygun olduğu açık olmayabilir. Bu konuda okumak için bazı makaleler:
https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart
https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce
https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm
Bu zor kararla ilgili daha fazla bilgi bulmak için araştırma yapın.
Ödev
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalardan sorumlu değiliz.



