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.
Data-Science-For-Beginners/translations/it/3-Data-Visualization/11-visualization-proportions
leestott a8ee6b6162
🌐 Update translations via Co-op Translator
3 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 3 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

Visualizzare le Proporzioni

 Sketchnote di (@sketchthedocs)
Visualizzare le Proporzioni - Sketchnote di @nitya

In questa lezione, utilizzerai un dataset incentrato sulla natura per visualizzare le proporzioni, ad esempio quanti tipi diversi di funghi popolano un determinato dataset sui funghi. Esploriamo questi affascinanti funghi utilizzando un dataset proveniente da Audubon che elenca dettagli su 23 specie di funghi lamellati delle famiglie Agaricus e Lepiota. Sperimenterai con visualizzazioni accattivanti come:

  • Grafici a torta 🥧
  • Grafici a ciambella 🍩
  • Grafici a waffle 🧇

💡 Un progetto molto interessante chiamato Charticulator di Microsoft Research offre un'interfaccia drag and drop gratuita per le visualizzazioni di dati. In uno dei loro tutorial utilizzano anche questo dataset sui funghi! Puoi quindi esplorare i dati e imparare a usare la libreria contemporaneamente: Tutorial Charticulator.

Quiz pre-lezione

Conosci i tuoi funghi 🍄

I funghi sono davvero interessanti. Importiamo un dataset per studiarli:

import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()

Una tabella viene stampata con alcuni dati interessanti per l'analisi:

classe forma-cappello superficie-cappello colore-cappello lividi odore attacco-lamelle spaziatura-lamelle dimensione-lamelle colore-lamelle forma-gambo radice-gambo superficie-gambo-sopra-anello superficie-gambo-sotto-anello colore-gambo-sopra-anello colore-gambo-sotto-anello tipo-velo colore-velo numero-anelli tipo-anello colore-spore popolazione habitat
Velenoso Convesso Liscio Marrone Lividi Pungente Libero Stretto Stretto Nero Allargato Uguale Liscio Liscio Bianco Bianco Parziale Bianco Uno Pendente Nero Sparso Urbano
Commestibile Convesso Liscio Giallo Lividi Mandorla Libero Stretto Largo Nero Allargato Clava Liscio Liscio Bianco Bianco Parziale Bianco Uno Pendente Marrone Numeroso Prati
Commestibile Campanulato Liscio Bianco Lividi Anice Libero Stretto Largo Marrone Allargato Clava Liscio Liscio Bianco Bianco Parziale Bianco Uno Pendente Marrone Numeroso Prati
Velenoso Convesso Squamoso Bianco Lividi Pungente Libero Stretto Stretto Marrone Allargato Uguale Liscio Liscio Bianco Bianco Parziale Bianco Uno Pendente Nero Sparso Urbano

Subito noti che tutti i dati sono testuali. Dovrai convertire questi dati per poterli utilizzare in un grafico. La maggior parte dei dati, infatti, è rappresentata come un oggetto:

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

L'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')

Prendi questi dati e converti la colonna 'classe' in una categoria:

cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass

Ora, se stampi i dati dei funghi, puoi vedere che sono stati raggruppati in categorie in base alla classe velenoso/commestibile:

forma-cappello superficie-cappello colore-cappello lividi odore attacco-lamelle spaziatura-lamelle dimensione-lamelle colore-lamelle forma-gambo ... superficie-gambo-sotto-anello colore-gambo-sopra-anello colore-gambo-sotto-anello tipo-velo colore-velo numero-anelli tipo-anello colore-spore popolazione habitat
classe
Commestibile 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
Velenoso 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

Seguendo l'ordine presentato in questa tabella per creare le etichette delle categorie di classe, puoi costruire un grafico a torta:

Torta!

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

Voilà, un grafico a torta che mostra le proporzioni di questi dati in base alle due classi di funghi. È molto importante ottenere l'ordine corretto delle etichette, specialmente qui, quindi assicurati di verificare l'ordine con cui è costruito l'array delle etichette!

grafico a torta

Ciambelle!

Un grafico a torta un po' più interessante visivamente è il grafico a ciambella, che è un grafico a torta con un buco al centro. Esaminiamo i nostri dati utilizzando questo metodo.

Dai un'occhiata ai vari habitat in cui crescono i funghi:

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

Qui stai raggruppando i tuoi dati per habitat. Ce ne sono 7 elencati, quindi usali come etichette per il tuo grafico a ciambella:

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

grafico a ciambella

Questo codice disegna un grafico e un cerchio centrale, quindi aggiunge quel cerchio centrale al grafico. Modifica la larghezza del cerchio centrale cambiando 0.40 con un altro valore.

I grafici a ciambella possono essere modificati in diversi modi per cambiare le etichette. Le etichette in particolare possono essere evidenziate per migliorarne la leggibilità. Scopri di più nei documenti.

Ora che sai come raggruppare i tuoi dati e poi visualizzarli come torta o ciambella, puoi esplorare altri tipi di grafici. Prova un grafico a waffle, che è solo un modo diverso di esplorare le quantità.

Waffle!

Un grafico di tipo 'waffle' è un modo diverso di visualizzare le quantità come una matrice 2D di quadrati. Prova a visualizzare le diverse quantità di colori del cappello dei funghi in questo dataset. Per farlo, devi installare una libreria di supporto chiamata PyWaffle e utilizzare Matplotlib:

pip install pywaffle

Seleziona un segmento dei tuoi dati da raggruppare:

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

Crea un grafico a waffle creando etichette e poi raggruppando i tuoi dati:

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

Utilizzando un grafico a waffle, puoi vedere chiaramente le proporzioni dei colori del cappello in questo dataset di funghi. Curiosamente, ci sono molti funghi con cappelli verdi!

grafico a waffle

Pywaffle supporta le icone all'interno dei grafici che utilizzano qualsiasi icona disponibile in Font Awesome. Fai qualche esperimento per creare un grafico a waffle ancora più interessante utilizzando icone invece di quadrati.

In questa lezione, hai imparato tre modi per visualizzare le proporzioni. Prima, devi raggruppare i tuoi dati in categorie e poi decidere qual è il modo migliore per visualizzarli: torta, ciambella o waffle. Tutti sono deliziosi e offrono all'utente una panoramica immediata di un dataset.

🚀 Sfida

Prova a ricreare questi grafici gustosi in Charticulator.

Quiz post-lezione

Revisione & Studio Autonomo

A volte non è ovvio quando utilizzare un grafico a torta, a ciambella o a waffle. Ecco alcuni articoli da leggere su questo argomento:

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

Fai qualche ricerca per trovare ulteriori informazioni su questa decisione complessa.

Compito

Provalo in Excel


Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale eseguita da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.