delete

Contattaci

back to resources

Come utilizzare Matplotlib per la Data Visualization in Python

Matplotlib
Python
Data Visualization
Data Science
Data Analysis
data
26/6/2023
data progetto
autore
Carla Melia
cliente
partnership
url
No items found.

Matplotlib è una libreria di visualizzazione dati ampiamente utilizzata in Python. Con Matplotlib, è possibile creare grafici di diversi tipi, come grafici a linee, a barre, a dispersione e a torta.

In questo articolo, vedremo i vantaggi che questo strumento porta con sé, nonché alcune funzionalità avanzate, possibili alternative e un tutorial con un esempio pratico di creazione di un grafico a linee che mostra l'andamento del prezzo di chiusura delle azioni di una società nel corso del tempo.

Esempi pratici di visualizzazioni dati con Matplotlib in Python

Matplotlib: caratteristiche e vantaggi

Matplotlib è una delle librerie più utilizzate per la visualizzazione dei dati in Python, e ci sono diversi vantaggi nell'utilizzarla:

Facilita' di utilizzo

Matplotlib è facile da usare, con una sintassi intuitiva che permette di creare rapidamente grafici di base. Inoltre, la libreria Matplotlib è ben documentata e ci sono molti esempi disponibili online.

Flessibilita'

Matplotlib offre una vasta gamma di opzioni di personalizzazione, che permettono di creare grafici altamente personalizzati e adattati alle esigenze specifiche di ogni progetto.

Ampia gamma di grafici disponibili

Matplotlib supporta una vasta gamma di tipi di grafici, tra cui grafici a barre, grafici a dispersione, grafici a linee, grafici a torta e molti altri. Inoltre, Matplotlib è in grado di gestire grandi quantità di dati, permettendo di visualizzare grafici anche con milioni di punti dati.

Integrazione con NumPy e Pandas

Matplotlib si integra perfettamente con le librerie NumPy e Pandas, che sono ampiamente utilizzate in data science e analisi dei dati. Questo rende più facile la visualizzazione dei dati contenuti in queste librerie.

Disponibilita' di strumenti di terze parti

Ci sono molte librerie di terze parti che si basano su Matplotlib, come Seaborn e ggplot, che offrono funzionalità aggiuntive e rendono ancora più facile la creazione di grafici complessi.

In generale, Matplotlib è una libreria molto potente e flessibile, che offre molte opzioni per la visualizzazione dei dati in Python.

La sua facilità d'uso, la flessibilità e l'ampia gamma di grafici disponibili la rendono un'opzione molto popolare per la creazione di grafici e la visualizzazione dei dati.

Tutorial: creare una visualizzazione dati con Matplotlib

Prima di tutto, assicurati di avere installata la libreria Matplotlib sul tuo computer. Puoi farlo usando il seguente comando in un ambiente virtuale Python:

pip install matplotlib

Una volta installata la libreria, puoi iniziare a utilizzarla. Innanzitutto, importa la libreria all'interno del tuo script Python:

import matplotlib.pyplot as plt

Successivamente, carica i dati che desideri visualizzare. In questo esempio, useremo un file CSV che contiene i dati del prezzo di chiusura delle azioni di una società.

import csv

x_values = [] # lista dei valori x (data)
y_values = [] # lista dei valori y (prezzo di chiusura)

with open('data.csv') as file:
 reader = csv.reader(file)
 next(reader) # salta la prima riga (intestazione)
 for row in reader:
  x_values.append(row[0])
   y_values.append(float(row[1]))

In questo esempio, abbiamo utilizzato la libreria csv di Python per caricare i dati dal file CSV. Abbiamo quindi creato due liste: x_values che contiene le date e y_values che contiene i prezzi di chiusura.

A questo punto, possiamo creare il grafico a linee utilizzando la funzione plot() di Matplotlib.

plt.plot(x_values, y_values)

# aggiungi le etichette degli assi e il titolo del grafico
plt.xlabel('Data')
plt.ylabel('Prezzo di chiusura')
plt.title('Andamento del prezzo di chiusura delle azioni di una società')

La funzione plot() crea il grafico a linee utilizzando i dati forniti come argomenti. L'asse x mostra le date, mentre l'asse y mostra i prezzi di chiusura.

Infine, utilizziamo le funzioni xlabel(), ylabel() e title() di Matplotlib per aggiungere le etichette degli assi e il titolo del grafico.

Ecco il codice completo per il nostro esempio:

import matplotlib.pyplot as plt

import csv
x_values = []
y_values = []

with open('data.csv') as file:
reader = csv.reader(file)
next(reader)
for row in reader:
   x_values.append(row[0])
   y_values.append(float(row[1]))

plt.plot(x_values, y_values)
plt.xlabel('Data')
plt.ylabel('Prezzo di chiusura')
plt.title('Andamento del prezzo di chiusura delle azioni di una società')
plt.show()

L'ultima riga del nostro codice, plt.show(), mostra il grafico a schermo. Se vuoi salvare il grafico su un file, puoi utilizzare la funzione savefig() di Matplotlib.

Questo è solo un esempio di come utilizzare Matplotlib per creare grafi a linee in Python. Matplotlib offre molte altre opzioni di personalizzazione per i grafici, come la scelta dei colori, lo stile delle linee e la creazione di grafici con più serie di dati.

Ad esempio, puoi utilizzare la funzione plot() per creare un grafico con più linee, passando le liste dei valori x e y per ciascuna serie di dati come argomenti.

x_values1 = [1, 2, 3, 4, 5]
y_values1 = [5, 2, 4, 6, 3]
x_values2 = [1, 2, 3, 4, 5]
y_values2 = [4, 3, 5, 1, 2]
plt.plot(x_values1, y_values1, label='Serie 1')
plt.plot(x_values2, y_values2, label='Serie 2')
plt.xlabel('Valori x')
plt.ylabel('Valori y')
plt.title('Grafico con due serie di dati')
plt.legend()
plt.show()

In questo esempio, abbiamo creato due serie di dati con le liste x_values1, y_values1 e x_values2, y_values2. Abbiamo quindi utilizzato la funzione plot() per creare un grafico con due linee, utilizzando l'argomento label per assegnare un'etichetta a ciascuna serie di dati. La funzione legend() viene utilizzata per aggiungere una legenda al grafico.

Matplotlib offre anche molte opzioni di personalizzazione per la presentazione del grafico. Ad esempio, puoi impostare lo stile delle linee utilizzando l'argomento linestyle, come mostrato nell'esempio seguente:

plt.plot(x_values, y_values, color='red', linestyle='dashed', linewidth=2, marker='o', markersize=8)

In questo esempio, abbiamo impostato il colore della linea su rosso utilizzando l'argomento color, lo stile della linea su tratteggiato utilizzando linestyle, la larghezza della linea su 2 utilizzando linewidth, e aggiunto un marker circolare in corrispondenza di ciascun punto utilizzando marker e markersize.

Funzionalità avanzate di Matplotlib

Matplotlib offre molte funzionalità avanzate per la creazione di grafici altamente personalizzati.

Qui di seguito ne elenchiamo alcune:

Sottotrame (subplot)

Matplotlib permette di creare grafici con più sottotrame, in modo da visualizzare più grafici in una singola figura. Questo è molto utile quando si vuole confrontare diverse visualizzazioni dei dati. Ad esempio, si possono creare due grafici a linee su due assi diversi all'interno della stessa figura per visualizzare come cambiano due serie di dati diverse nel tempo.

Personalizzazione dell'aspetto degli assi

Matplotlib offre una vasta gamma di opzioni per personalizzare l'aspetto degli assi, tra cui l'etichettatura degli assi, la formattazione delle etichette e l'impostazione dei limiti degli assi. Inoltre, è possibile aggiungere griglie di riferimento agli assi per una migliore comprensione dei dati.

Grafici tridimensionali

Matplotlib supporta la creazione di grafici tridimensionali, che permettono di visualizzare i dati in tre dimensioni. Questo è utile quando si vogliono visualizzare dati che variano in modo dipendente su tre variabili.

Animazioni

Matplotlib permette di creare animazioni, in modo da visualizzare come cambiano i dati nel tempo. Questo è utile quando si vuole visualizzare come variano i dati in una serie di istanti temporali.

Mappe

Matplotlib supporta la creazione di mappe, in modo da visualizzare dati geografici. Questo è utile quando si vogliono visualizzare dati geografici in modo visuale e interattivo.

Personalizzazione del tema

Matplotlib permette di personalizzare il tema del grafico, in modo da adattarlo ai propri gusti estetici o alla brand identity dell'azienda. Sono disponibili molti stili di tema predefiniti, ma è anche possibile crearne di personalizzati.

Visualizzazioni dati avanzate con Matplotlib

Alternative a Matplotlib

Esistono diverse librerie alternative a Matplotlib per la visualizzazione dei dati in Python. Ecco alcune delle principali:

Seaborn

Seaborn è una libreria Python basata su Matplotlib, che offre funzionalità avanzate per la creazione di grafici statistici, come grafici a barre con errori, grafici a violino e grafici a matrice di correlazione. Seaborn ha un'interfaccia più semplice rispetto a Matplotlib e offre una maggiore facilità d'uso, ma a costo di una minore personalizzazione.

Plotly

Plotly è una libreria Python che offre funzionalità avanzate per la creazione di grafici interattivi, che permettono all'utente di esplorare i dati in modo interattivo. Plotly è in grado di creare grafici interattivi complessi come mappe, grafici di rete e grafici 3D.

Bokeh

Bokeh è una libreria Python per la creazione di grafici interattivi. Bokeh permette di creare grafici interattivi complessi, come mappe e grafici di rete, ed è in grado di gestire grandi quantità di dati.

Altair

Altair è una libreria Python per la creazione di grafici interattivi basati sulla grammatica dei grafici. Altair permette di creare grafici interattivi complessi con una sintassi semplice e intuitiva, ma è meno flessibile rispetto ad altre librerie come Matplotlib.

Ggplot

Ggplot è una libreria Python basata sulla grammatica dei grafici di R, che offre funzionalità avanzate per la creazione di grafici a strati. Ggplot ha una sintassi più semplice rispetto a Matplotlib, ma a costo di una minore personalizzazione.

In generale, la scelta della libreria di visualizzazione dei dati dipende dalle proprie esigenze e dal tipo di grafico che si vuole creare.

Matplotlib rimane una delle librerie più popolari e flessibili per la visualizzazione dei dati in Python, ma ci sono molte alternative disponibili per soddisfare diverse esigenze e stili di programmazione.

Risultati

resources

Massimizzare l'efficienza: come gestire la profondità delle code con Infrared360®

Massimizzare l'efficienza: come gestire la profondità delle code con Infrared360®

sistemi di messaggistica aziendale

Infrared360

profondità code ambienti IBM MQ

ambienti IBM MQ

Gestione dell'identità e degli accessi negli ambienti MQ

Gestione dell'identità e degli accessi negli ambienti MQ

middleware

accessi ambienti MQ

ambienti MQ

gestione MQ

Ottimizzazione delle configurazioni dei canali IBM MQ

Ottimizzazione delle configurazioni dei canali IBM MQ

canali IBM MQ

Infrared360

monitoraggio IBM MQ

Integrazione efficiente di sistemi bancari e finanziari transazionali nelle fusioni e acquisizioni bancarie

Integrazione efficiente di sistemi bancari e finanziari transazionali nelle fusioni e acquisizioni bancarie

integrazioni IT

sistemi transazionali

sistemi finanziari

Monitoraggio dello stato di salute del middleware: l'importanza di un approccio proattivo

Monitoraggio dello stato di salute del middleware: l'importanza di un approccio proattivo

monitoraggio middleware

Avada Software

middleware

Migliora l’efficienza operativa dell’infrastruttura middleware in tutte le unità aziendali

Migliora l’efficienza operativa dell’infrastruttura middleware in tutte le unità aziendali

Middleware

Efficienza operativa

Introduzione a Godot, game engine free & open source

Introduzione a Godot, game engine free & open source

Game Engine

Open Source

Unreal Engine

Unity

TDA in a nutshell: how can we find multidimensional voids and explore the “black boxes” of deep learning?

TDA in a nutshell: how can we find multidimensional voids and explore the “black boxes” of deep learning?

Multidimensional Voids

Black Boxes

Deep Learning

Topological Data Analysis

AI: bias, esempi nella realtà e nella cinematografia

AI: bias, esempi nella realtà e nella cinematografia

Bias

Cinema

AMRITA (Automatic, Maintenance, Reengineering, Integrated, Technology Application)

AMRITA (Automatic, Maintenance, Reengineering, Integrated, Technology Application)

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

Prompt

Design

AI Generativa

AI Designer

Le nuove linee guida per la sicurezza delle password aziendali

Le nuove linee guida per la sicurezza delle password aziendali

Password aziendali

Linee guida Garante Privacy

Garante Privacy

GDPR

6 motivi per scegliere Flutter nel 2024

6 motivi per scegliere Flutter nel 2024

App Development

Google

React Native

AI, sistemi esperti e rappresentazione della conoscenza

AI, sistemi esperti e rappresentazione della conoscenza

Sistemi esperti

Rappresentazione della conoscenza

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

LIS2SPEECH

Traduzione LIS

User Experience Design tra accessibilità e inclusività

User Experience Design tra accessibilità e inclusività

User Experience

Accessibilità

Inclusività

Assitech.Net entra nella galassia Orbyta Technologies

Assitech.Net entra nella galassia Orbyta Technologies

Orbyta Technologies

Orbyta Group

Acquisizione

News

Programmazione Funzionale Java

Programmazione Funzionale Java

Functional Programming

Java

Software Development

Reactive Programming: parallelizzare con Project Reactor

Reactive Programming: parallelizzare con Project Reactor

Programmazione Reattiva

Reactive Programming

Project Reactor

Piattaforme E-commerce Wholesale per il settore B2B

Piattaforme E-commerce Wholesale per il settore B2B

Wholesale

B2B

Antipattern nello sviluppo software: altri errori da evitare

Antipattern nello sviluppo software: altri errori da evitare

Software Development

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Software Development

App tattiche di supporto alla gestione dei progetti reiterativi

App tattiche di supporto alla gestione dei progetti reiterativi

App Development

Power Platform

Low Code

DevOps

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Microsoft

Low-code

Power Platform

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Jupiter

Python

Data Analysis

Data Visualization

Come utilizzare Matplotlib per la Data Visualization in Python

Come utilizzare Matplotlib per la Data Visualization in Python

Python

Data Visualization

Data Science

Data Analysis

Introduzione alla libreria Dash per Python

Introduzione alla libreria Dash per Python

Python

Data Science

Data Visualization

Data Analysis

Prime Video passa al monolite: ma allora serverless è inutile? 

Prime Video passa al monolite: ma allora serverless è inutile? 

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Power Apps Tutorial – Case Study: come costruire una business app da zero

Power Apps Tutorial – Case Study: come costruire una business app da zero

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Power Apps Basics: interfacce, implementazione & vantaggi

Power Apps Basics: interfacce, implementazione & vantaggi

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Introduzione a Serverless: non solo Lambda Function

Introduzione a Serverless: non solo Lambda Function

Metaverso: siamo pronti a cogliere l’opportunità?

Metaverso: siamo pronti a cogliere l’opportunità?

Recap Flutter Forward 2023: le 7 novità più interessanti

Recap Flutter Forward 2023: le 7 novità più interessanti

Let's Redux React to a Game

Let's Redux React to a Game

Introduzione a PowerShell

Introduzione a PowerShell

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

NFT World: il fenomeno NFT tra metaverso, business e GameFi

NFT World: il fenomeno NFT tra metaverso, business e GameFi

Quick Escape Room

Quick Escape Room

Orbyta Invaders Ignition

Orbyta Invaders Ignition

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

development

design

metaverse

brand identity

Database a grafo in SQL Server

Database a grafo in SQL Server

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Teoria dei giochi: Propagazione delle strategie

Teoria dei giochi: Propagazione delle strategie

The chosen one: .NET 5

The chosen one: .NET 5

Network Science e Social Network Analysis

Network Science e Social Network Analysis

Isolation levels on SSMS

Isolation levels on SSMS

Teoria dei Grafi

Teoria dei Grafi

Creare un podcast in automatico a partire da audio vocali e musica

Creare un podcast in automatico a partire da audio vocali e musica

Teoria dei Giochi

Teoria dei Giochi

Recommender systems: principali metodologie degli algoritmi di suggerimento

Recommender systems: principali metodologie degli algoritmi di suggerimento

Introduction to Quantum Computing and Qiskit

Introduction to Quantum Computing and Qiskit

System Versioned Tables

System Versioned Tables

Vim o non Vim

Vim o non Vim

I vantaggi di un Message Broker

I vantaggi di un Message Broker

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

Protezione dei Web Services

Protezione dei Web Services

need more info?

Contattaci