Python Language
Visualizzazione dei dati con Python
Ricerca…
matplotlib
Matplotlib è una libreria di plottaggio matematica per Python che offre una varietà di diverse funzionalità di tracciamento.
La documentazione di matplotlib può essere trovata qui , con i documenti SO disponibili qui .
Matplotlib fornisce due metodi distinti per la stampa, sebbene siano per lo più intercambiabili:
- In primo luogo, matplotlib fornisce l'interfaccia di
pyplot
, un'interfaccia diretta e di semplice utilizzo che consente di tracciare grafici complessi in uno stile simile a MATLAB. - In secondo luogo, matplotlib consente all'utente di controllare i diversi aspetti (assi, linee, zecche, ecc.) Direttamente utilizzando un sistema basato su oggetti. Questo è più difficile ma consente il controllo completo dell'intera trama.
Di seguito è riportato un esempio di utilizzo dell'interfaccia di pyplot
per tracciare alcuni dati generati:
import matplotlib.pyplot as plt
# Generate some data for plotting.
x = [0, 1, 2, 3, 4, 5, 6]
y = [i**2 for i in x]
# Plot the data x, y with some keyword arguments that control the plot style.
# Use two different plot commands to plot both points (scatter) and a line (plot).
plt.scatter(x, y, c='blue', marker='x', s=100) # Create blue markers of shape "x" and size 100
plt.plot(x, y, color='red', linewidth=2) # Create a red line with linewidth 2.
# Add some text to the axes and a title.
plt.xlabel('x data')
plt.ylabel('y data')
plt.title('An example plot')
# Generate the plot and show to the user.
plt.show()
Si noti che plt.show()
è noto per essere problematico in alcuni ambienti a causa dell'esecuzione di matplotlib.pyplot
in modalità interattiva e, in tal caso, il comportamento di blocco può essere sovrascritto esplicitamente passando in un argomento facoltativo, plt.show(block=True)
, per alleviare il problema.
Seaborn
Seaborn è un wrapper di Matplotlib che semplifica la creazione di grafici statistici comuni. L'elenco di grafici supportati include grafici di distribuzione univariati e bivariati, diagrammi di regressione e un numero di metodi per il tracciamento di variabili categoriali. L'elenco completo dei grafici forniti da Seaborn si trova nel riferimento API .
Creare grafici in Seaborn è semplice come chiamare la funzione grafica appropriata. Ecco un esempio di creazione di un istogramma, stima della densità del kernel e trama del tappeto per dati generati casualmente.
import numpy as np # numpy used to create data from plotting
import seaborn as sns # common form of importing seaborn
# Generate normally distributed data
data = np.random.randn(1000)
# Plot a histogram with both a rugplot and kde graph superimposed
sns.distplot(data, kde=True, rug=True)
Lo stile del grafico può anche essere controllato usando una sintassi dichiarativa.
# Using previously created imports and data.
# Use a dark background with no grid.
sns.set_style('dark')
# Create the plot again
sns.distplot(data, kde=True, rug=True)
Come bonus aggiuntivo, i normali comandi matplotlib possono ancora essere applicati ai grafici di Seaborn. Ecco un esempio di aggiunta di titoli di assi al nostro istogramma creato in precedenza.
# Using previously created data and style
# Access to matplotlib commands
import matplotlib.pyplot as plt
# Previously created plot.
sns.distplot(data, kde=True, rug=True)
# Set the axis labels.
plt.xlabel('This is my x-axis')
plt.ylabel('This is my y-axis')
MayaVi
MayaVI è uno strumento di visualizzazione 3D per dati scientifici. Utilizza il Visualization Tool Kit o VTK sotto il cofano. Usando la potenza di VTK , MayaVI è in grado di produrre una varietà di grafici e figure tridimensionali. È disponibile come applicazione software separata e anche come libreria. Simile a Matplotlib , questa libreria fornisce un'interfaccia linguistica di programmazione orientata agli oggetti per creare grafici senza dover conoscere VTK .
MayaVI è disponibile solo nella serie Python 2.7x! Si spera di essere presto disponibile nella serie Python 3-x! (Sebbene si noti un certo successo quando si usano le sue dipendenze in Python 3)
La documentazione può essere trovata qui . Alcuni esempi di gallerie sono disponibili qui
Ecco un tracciato di esempio creato usando MayaVI dalla documentazione.
# Author: Gael Varoquaux <[email protected]>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.
from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab
mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]
X = 2 / 3. * (cos(u) * cos(2 * v)
+ sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
- sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)
mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )
# Nice view from the front
mlab.view(.0, - 5.0, 4)
mlab.show()
Plotly
Plotly è una piattaforma moderna per il tracciamento e la visualizzazione dei dati. Utile per produrre una varietà di trame, in particolare per le scienze di dati, Plotly è disponibile come libreria per Python , R , JavaScript , Julia e, MATLAB . Può anche essere usato come applicazione web con queste lingue.
Gli utenti possono installare la libreria grafica e utilizzarla offline dopo l'autenticazione dell'utente. L'installazione di questa libreria e l'autenticazione offline viene fornita qui . Inoltre, le trame possono essere fatte anche nei quaderni Jupyter .
L'utilizzo di questa libreria richiede un account con nome utente e password. Ciò consente all'area di lavoro di salvare grafici e dati sul cloud.
La versione gratuita della libreria ha alcune funzionalità leggermente limitate e progettata per fare 250 grafici al giorno. La versione a pagamento ha tutte le caratteristiche, download di trama illimitati e più spazio di archiviazione privato. Per maggiori dettagli, si può visitare la pagina principale qui .
Per documentazione ed esempi, si può andare qui
Un grafico di esempio dagli esempi di documentazione:
import plotly.graph_objs as go
import plotly as ply
# Create random data with numpy
import numpy as np
N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5
# Create traces
trace0 = go.Scatter(
x = random_x,
y = random_y0,
mode = 'lines',
name = 'lines'
)
trace1 = go.Scatter(
x = random_x,
y = random_y1,
mode = 'lines+markers',
name = 'lines+markers'
)
trace2 = go.Scatter(
x = random_x,
y = random_y2,
mode = 'markers',
name = 'markers'
)
data = [trace0, trace1, trace2]
ply.offline.plot(data, filename='line-mode')