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.

17 KiB

Οπτικοποίηση Αναλογιών

 Σκίτσο από (@sketchthedocs)
Οπτικοποίηση Αναλογιών - Σκίτσο από @nitya

Σε αυτό το μάθημα, θα χρησιμοποιήσετε ένα διαφορετικό dataset με επίκεντρο τη φύση για να οπτικοποιήσετε αναλογίες, όπως πόσα διαφορετικά είδη μανιταριών περιλαμβάνονται σε ένα δεδομένο dataset για μανιτάρια. Ας εξερευνήσουμε αυτά τα συναρπαστικά μανιτάρια χρησιμοποιώντας ένα dataset από το Audubon που περιλαμβάνει λεπτομέρειες για 23 είδη μανιταριών με ελάσματα από τις οικογένειες Agaricus και Lepiota. Θα πειραματιστείτε με νόστιμες οπτικοποιήσεις όπως:

  • Γραφήματα πίτας 🥧
  • Γραφήματα ντόνατ 🍩
  • Γραφήματα βάφλας 🧇

💡 Ένα πολύ ενδιαφέρον project που ονομάζεται Charticulator από τη Microsoft Research προσφέρει μια δωρεάν διεπαφή drag and drop για οπτικοποιήσεις δεδομένων. Σε ένα από τα tutorials τους χρησιμοποιούν επίσης αυτό το dataset για μανιτάρια! Έτσι, μπορείτε να εξερευνήσετε τα δεδομένα και να μάθετε τη βιβλιοθήκη ταυτόχρονα: Charticulator tutorial.

Κουίζ πριν το μάθημα

Γνωρίστε τα μανιτάρια σας 🍄

Τα μανιτάρια είναι πολύ ενδιαφέροντα. Ας εισάγουμε ένα dataset για να τα μελετήσουμε:

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
Δηλητηριώδες Κυρτό Λείο Καφέ Μώλωπες Δριμύ Ελεύθερο Κοντινό Στενό Μαύρο Διευρυνόμενο Ίσο Λείο Λείο Λευκό Λευκό Μερικό Λευκό Ένα Κρεμαστό Μαύρο Σκόρπιο Αστικό
Βρώσιμο Κυρτό Λείο Κίτρινο Μώλωπες Αμυγδάλου Ελεύθερο Κοντινό Ευρύ Μαύρο Διευρυνόμενο Κλαμπ Λείο Λείο Λευκό Λευκό Μερικό Λευκό Ένα Κρεμαστό Καφέ Πολλά Χόρτα
Βρώσιμο Καμπανόσχημο Λείο Λευκό Μώλωπες Γλυκάνισο Ελεύθερο Κοντινό Ευρύ Καφέ Διευρυνόμενο Κλαμπ Λείο Λείο Λευκό Λευκό Μερικό Λευκό Ένα Κρεμαστό Καφέ Πολλά Λιβάδια
Δηλητηριώδες Κυρτό Λεπιδωτό Λευκό Μώλωπες Δριμύ Ελεύθερο Κοντινό Στενό Καφέ Διευρυνόμενο Ίσο Λείο Λείο Λευκό Λευκό Μερικό Λευκό Ένα Κρεμαστό Μαύρο Σκόρπιο Αστικό

Αμέσως παρατηρείτε ότι όλα τα δεδομένα είναι κειμενικά. Θα πρέπει να μετατρέψετε αυτά τα δεδομένα για να μπορέσετε να τα χρησιμοποιήσετε σε ένα γράφημα. Στην πραγματικότητα, τα περισσότερα δεδομένα αναπαρίστανται ως αντικείμενα:

print(mushrooms.select_dtypes(["object"]).columns)

Η έξοδος είναι:

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' σε κατηγορία:

cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
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

Αν ακολουθήσετε τη σειρά που παρουσιάζεται σε αυτόν τον πίνακα για να δημιουργήσετε τις ετικέτες κατηγορίας, μπορείτε να δημιουργήσετε ένα γράφημα πίτας:

Πίτα!

labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()

Ορίστε, ένα γράφημα πίτας που δείχνει τις αναλογίες αυτών των δεδομένων σύμφωνα με αυτές τις δύο κατηγορίες μανιταριών. Είναι αρκετά σημαντικό να διασφαλίσετε τη σωστή σειρά των ετικετών, ειδικά εδώ, οπότε φροντίστε να επαληθεύσετε τη σειρά με την οποία δημιουργείται ο πίνακας ετικετών!

pie chart

Ντόνατ!

Ένα κάπως πιο οπτικά ενδιαφέρον γράφημα πίτας είναι το γράφημα ντόνατ, το οποίο είναι ένα γράφημα πίτας με μια τρύπα στη μέση. Ας δούμε τα δεδομένα μας χρησιμοποιώντας αυτή τη μέθοδο.

Δείτε τους διάφορους βιότοπους όπου αναπτύσσονται τα μανιτάρια:

habitat=mushrooms.groupby(['habitat']).count()
habitat

Εδώ, ομαδοποιείτε τα δεδομένα σας ανά βιότοπο. Υπάρχουν 7 καταγεγραμμένοι, οπότε χρησιμοποιήστε αυτούς ως ετικέτες για το γράφημα ντόνατ:

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()

donut chart

Αυτός ο κώδικας σχεδιάζει ένα γράφημα και έναν κεντρικό κύκλο, και στη συνέχεια προσθέτει αυτόν τον κεντρικό κύκλο στο γράφημα. Επεξεργαστείτε το πλάτος του κεντρικού κύκλου αλλάζοντας το 0.40 σε άλλη τιμή.

Τα γραφήματα ντόνατ μπορούν να προσαρμοστούν με διάφορους τρόπους για να αλλάξουν οι ετικέτες. Οι ετικέτες, ειδικότερα, μπορούν να τονιστούν για καλύτερη αναγνωσιμότητα. Μάθετε περισσότερα στα έγγραφα.

Τώρα που ξέρετε πώς να ομαδοποιείτε τα δεδομένα σας και να τα εμφανίζετε ως πίτα ή ντόνατ, μπορείτε να εξερευνήσετε άλλους τύπους γραφημάτων. Δοκιμάστε ένα γράφημα βάφλας, το οποίο είναι απλώς ένας διαφορετικός τρόπος εξερεύνησης ποσοτήτων.

Βάφλες!

Ένα γράφημα τύπου 'βάφλας' είναι ένας διαφορετικός τρόπος οπτικοποίησης ποσοτήτων ως δισδιάστατος πίνακας τετραγώνων. Δοκιμάστε να οπτικοποιήσετε τις διαφορετικές ποσότητες χρωμάτων καπέλου μανιταριών σε αυτό το dataset. Για να το κάνετε αυτό, πρέπει να εγκαταστήσετε μια βοηθητική βιβλιοθήκη που ονομάζεται PyWaffle και να χρησιμοποιήσετε το Matplotlib:

pip install pywaffle

Επιλέξτε ένα τμήμα των δεδομένων σας για ομαδοποίηση:

capcolor=mushrooms.groupby(['cap-color']).count()
capcolor

Δημιουργήστε ένα γράφημα βάφλας δημιουργώντας ετικέτες και στη συνέχεια ομαδοποιώντας τα δεδομένα σας:

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"],
)

Χρησιμοποιώντας ένα γράφημα βάφλας, μπορείτε να δείτε ξεκάθαρα τις αναλογίες των χρωμάτων καπέλου σε αυτό το dataset μανιταριών. Ενδιαφέρον είναι ότι υπάρχουν πολλά μανιτάρια με πράσινα καπέλα!

waffle chart

Το Pywaffle υποστηρίζει εικονίδια μέσα στα γραφήματα που χρησιμοποιούν οποιοδήποτε εικονίδιο διαθέσιμο στο Font Awesome. Κάντε πειράματα για να δημιουργήσετε ένα ακόμα πιο ενδιαφέρον γράφημα βάφλας χρησιμοποιώντας εικονίδια αντί για τετράγωνα.

Σε αυτό το μάθημα, μάθατε τρεις τρόπους για να οπτικοποιήσετε αναλογίες. Πρώτα, πρέπει να ομαδοποιήσετε τα δεδομένα σας σε κατηγορίες και στη συνέχεια να αποφασίσετε ποιος είναι ο καλύτερος τρόπος για να εμφανίσετε τα δεδομένα - πίτα, ντόνατ ή βάφλα. Όλα είναι νόστιμα και ικανοποιούν τον χρήστη με μια άμεση εικόνα ενός dataset.

🚀 Πρόκληση

Δοκιμάστε να αναδημιουργήσετε αυτά τα νόστιμα γραφήματα στο Charticulator.

Κουίζ μετά το μάθημα

Ανασκόπηση & Αυτομελέτη

Μερικές φορές δεν είναι προφανές πότε να χρησιμοποιήσετε ένα γράφημα πίτας, ντόνατ ή βάφλας. Εδώ είναι μερικά άρθρα για να διαβάσετε σχετικά με αυτό το θέμα:

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


Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.