You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

205 lines
17 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "42119bcc97bee88254e381156d770f3c",
"translation_date": "2025-09-05T21:12:25+00:00",
"source_file": "3-Data-Visualization/11-visualization-proportions/README.md",
"language_code": "el"
}
-->
# Οπτικοποίηση Αναλογιών
|![ Σκίτσο από [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/11-Visualizing-Proportions.png)|
|:---:|
|Οπτικοποίηση Αναλογιών - _Σκίτσο από [@nitya](https://twitter.com/nitya)_ |
Σε αυτό το μάθημα, θα χρησιμοποιήσετε ένα διαφορετικό σύνολο δεδομένων που εστιάζει στη φύση για να οπτικοποιήσετε αναλογίες, όπως πόσα διαφορετικά είδη μανιταριών περιλαμβάνονται σε ένα δεδομένο σύνολο δεδομένων. Ας εξερευνήσουμε αυτά τα συναρπαστικά μανιτάρια χρησιμοποιώντας ένα σύνολο δεδομένων από το Audubon, που περιλαμβάνει λεπτομέρειες για 23 είδη μανιταριών με ελάσματα από τις οικογένειες Agaricus και Lepiota. Θα πειραματιστείτε με νόστιμες οπτικοποιήσεις όπως:
- Γραφήματα πίτας 🥧
- Γραφήματα ντόνατ 🍩
- Γραφήματα βάφλας 🧇
> 💡 Ένα πολύ ενδιαφέρον έργο που ονομάζεται [Charticulator](https://charticulator.com) από τη Microsoft Research προσφέρει μια δωρεάν διεπαφή drag and drop για οπτικοποιήσεις δεδομένων. Σε ένα από τα μαθήματά τους χρησιμοποιούν επίσης αυτό το σύνολο δεδομένων για μανιτάρια! Έτσι, μπορείτε να εξερευνήσετε τα δεδομένα και να μάθετε τη βιβλιοθήκη ταυτόχρονα: [Charticulator tutorial](https://charticulator.com/tutorials/tutorial4.html).
## [Κουίζ πριν το μάθημα](https://ff-quizzes.netlify.app/en/ds/quiz/20)
## Γνωρίστε τα μανιτάρια σας 🍄
Τα μανιτάρια είναι πολύ ενδιαφέροντα. Ας εισάγουμε ένα σύνολο δεδομένων για να τα μελετήσουμε:
```python
import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()
```
Ένας πίνακας εμφανίζεται με εξαιρετικά δεδομένα για ανάλυση:
| 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 |
| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- |
| Δηλητηριώδες | Κυρτό | Λείο | Καφέ | Μώλωπες | Δριμύ | Ελεύθερο | Κλειστό | Στενό | Μαύρο | Διευρυνόμενο | Ίσο | Λείο | Λείο | Λευκό | Λευκό | Μερικό | Λευκό | Ένα | Κρεμαστό | Μαύρο | Σκόρπιο | Αστικό |
| Βρώσιμο | Κυρτό | Λείο | Κίτρινο | Μώλωπες | Αμύγδαλο | Ελεύθερο | Κλειστό | Φαρδύ | Μαύρο | Διευρυνόμενο | Κονδυλώδες | Λείο | Λείο | Λευκό | Λευκό | Μερικό | Λευκό | Ένα | Κρεμαστό | Καφέ | Πολλά | Χορτολίβαδα |
| Βρώσιμο | Καμπανόσχημο | Λείο | Λευκό | Μώλωπες | Γλυκάνισο | Ελεύθερο | Κλειστό | Φαρδύ | Καφέ | Διευρυνόμενο | Κονδυλώδες | Λείο | Λείο | Λευκό | Λευκό | Μερικό | Λευκό | Ένα | Κρεμαστό | Καφέ | Πολλά | Λιβάδια |
| Δηλητηριώδες | Κυρτό | Λεπιδωτό | Λευκό | Μώλωπες | Δριμύ | Ελεύθερο | Κλειστό | Στενό | Καφέ | Διευρυνόμενο | Ίσο | Λείο | Λείο | Λευκό | Λευκό | Μερικό | Λευκό | Ένα | Κρεμαστό | Μαύρο | Σκόρπιο | Αστικό |
Αμέσως παρατηρείτε ότι όλα τα δεδομένα είναι κειμενικά. Θα χρειαστεί να μετατρέψετε αυτά τα δεδομένα για να μπορέσετε να τα χρησιμοποιήσετε σε ένα γράφημα. Τα περισσότερα από τα δεδομένα, στην πραγματικότητα, αναπαρίστανται ως αντικείμενα:
```python
print(mushrooms.select_dtypes(["object"]).columns)
```
Η έξοδος είναι:
```output
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')
```
Πάρτε αυτά τα δεδομένα και μετατρέψτε τη στήλη 'class' σε κατηγορία:
```python
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
```
```python
edibleclass=mushrooms.groupby(['class']).count()
edibleclass
```
Τώρα, αν εκτυπώσετε τα δεδομένα των μανιταριών, μπορείτε να δείτε ότι έχουν ομαδοποιηθεί σε κατηγορίες σύμφωνα με την κατηγορία δηλητηριώδες/βρώσιμο:
| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | 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 |
| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- |
| class | | | | | | | | | | | | | | | | | | | | | |
| Βρώσιμο | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 |
| Δηλητηριώδες | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 |
Αν ακολουθήσετε τη σειρά που παρουσιάζεται σε αυτόν τον πίνακα για να δημιουργήσετε τις ετικέτες κατηγορίας, μπορείτε να φτιάξετε ένα γράφημα πίτας:
## Πίτα!
```python
labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()
```
Ορίστε, ένα γράφημα πίτας που δείχνει τις αναλογίες αυτών των δεδομένων σύμφωνα με αυτές τις δύο κατηγορίες μανιταριών. Είναι αρκετά σημαντικό να έχετε τη σωστή σειρά των ετικετών, ειδικά εδώ, οπότε φροντίστε να επαληθεύσετε τη σειρά με την οποία δημιουργείται ο πίνακας ετικετών!
![γράφημα πίτας](../../../../3-Data-Visualization/11-visualization-proportions/images/pie1-wb.png)
## Ντόνατ!
Ένα κάπως πιο οπτικά ενδιαφέρον γράφημα πίτας είναι το γράφημα ντόνατ, το οποίο είναι ένα γράφημα πίτας με μια τρύπα στη μέση. Ας δούμε τα δεδομένα μας χρησιμοποιώντας αυτή τη μέθοδο.
Δείτε τους διάφορους βιότοπους όπου αναπτύσσονται τα μανιτάρια:
```python
habitat=mushrooms.groupby(['habitat']).count()
habitat
```
Εδώ, ομαδοποιείτε τα δεδομένα σας ανά βιότοπο. Υπάρχουν 7 καταγεγραμμένοι, οπότε χρησιμοποιήστε αυτούς ως ετικέτες για το γράφημα ντόνατ:
```python
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()
```
![γράφημα ντόνατ](../../../../3-Data-Visualization/11-visualization-proportions/images/donut-wb.png)
Αυτός ο κώδικας σχεδιάζει ένα γράφημα και έναν κεντρικό κύκλο και στη συνέχεια προσθέτει αυτόν τον κεντρικό κύκλο στο γράφημα. Επεξεργαστείτε το πλάτος του κεντρικού κύκλου αλλάζοντας το `0.40` σε άλλη τιμή.
Τα γραφήματα ντόνατ μπορούν να προσαρμοστούν με διάφορους τρόπους για να αλλάξουν οι ετικέτες. Οι ετικέτες, συγκεκριμένα, μπορούν να τονιστούν για καλύτερη αναγνωσιμότητα. Μάθετε περισσότερα στις [οδηγίες](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut).
Τώρα που ξέρετε πώς να ομαδοποιείτε τα δεδομένα σας και να τα εμφανίζετε ως πίτα ή ντόνατ, μπορείτε να εξερευνήσετε άλλους τύπους γραφημάτων. Δοκιμάστε ένα γράφημα βάφλας, το οποίο είναι απλώς ένας διαφορετικός τρόπος εξερεύνησης ποσοτήτων.
## Βάφλες!
Ένα γράφημα τύπου 'βάφλας' είναι ένας διαφορετικός τρόπος οπτικοποίησης ποσοτήτων ως δισδιάστατος πίνακας τετραγώνων. Δοκιμάστε να οπτικοποιήσετε τις διαφορετικές ποσότητες χρωμάτων καπέλου μανιταριών σε αυτό το σύνολο δεδομένων. Για να το κάνετε αυτό, πρέπει να εγκαταστήσετε μια βοηθητική βιβλιοθήκη που ονομάζεται [PyWaffle](https://pypi.org/project/pywaffle/) και να χρησιμοποιήσετε το Matplotlib:
```python
pip install pywaffle
```
Επιλέξτε ένα τμήμα των δεδομένων σας για ομαδοποίηση:
```python
capcolor=mushrooms.groupby(['cap-color']).count()
capcolor
```
Δημιουργήστε ένα γράφημα βάφλας δημιουργώντας ετικέτες και στη συνέχεια ομαδοποιώντας τα δεδομένα σας:
```python
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"],
)
```
Χρησιμοποιώντας ένα γράφημα βάφλας, μπορείτε να δείτε ξεκάθαρα τις αναλογίες των χρωμάτων καπέλου σε αυτό το σύνολο δεδομένων μανιταριών. Ενδιαφέρον είναι ότι υπάρχουν πολλά μανιτάρια με πράσινα καπέλα!
![γράφημα βάφλας](../../../../3-Data-Visualization/11-visualization-proportions/images/waffle.png)
Το PyWaffle υποστηρίζει εικονίδια μέσα στα γραφήματα που χρησιμοποιούν οποιοδήποτε εικονίδιο διαθέσιμο στο [Font Awesome](https://fontawesome.com/). Κάντε πειράματα για να δημιουργήσετε ένα ακόμα πιο ενδιαφέρον γράφημα βάφλας χρησιμοποιώντας εικονίδια αντί για τετράγωνα.
Σε αυτό το μάθημα, μάθατε τρεις τρόπους οπτικοποίησης αναλογιών. Πρώτα, πρέπει να ομαδοποιήσετε τα δεδομένα σας σε κατηγορίες και στη συνέχεια να αποφασίσετε ποιος είναι ο καλύτερος τρόπος για να εμφανίσετε τα δεδομένα - πίτα, ντόνατ ή βάφλα. Όλα είναι νόστιμα και προσφέρουν στον χρήστη μια άμεση εικόνα ενός συνόλου δεδομένων.
## 🚀 Πρόκληση
Δοκιμάστε να αναδημιουργήσετε αυτά τα νόστιμα γραφήματα στο [Charticulator](https://charticulator.com).
## [Κουίζ μετά το μάθημα](https://ff-quizzes.netlify.app/en/ds/quiz/21)
## Ανασκόπηση & Αυτομελέτη
Μερικές φορές δεν είναι προφανές πότε να χρησιμοποιήσετε ένα γράφημα πίτας, ντόνατ ή βάφλας. Εδώ είναι μερικά άρθρα για να διαβάσετε σχετικά με αυτό το θέμα:
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
https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402
Κάντε έρευνα για να βρείτε περισσότερες πληροφορίες σχετικά με αυτή τη δύσκολη απόφαση.
## Εργασία
[Δοκιμάστε το στο Excel](assignment.md)
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.