2012-05-18 18 views

risposta

63

Ora grazie a mpld3 è super facile abilitare lo zoom nei grafici in linea!

Tutto quello che dovete fare è installare mpld3 (pip install mpld3), e quindi aggiungere questo al vostro notebook:

%matplotlib inline 
import mpld3 
mpld3.enable_notebook() 

Ora i vostri appezzamenti otterrà un menu della barra degli strumenti in basso a sinistra, in cui è possibile attivare il mouse zoom :)

+0

Sembra che i grafici 3D non siano ancora supportati: https://github.com/jakevdp/mpld3/issues/223 –

+1

questo è favoloso! – thias

+3

Questo è ottimo, ma si dovrebbe aggiungere che con alcuni dei grafici più pesanti (grafici contenenti milioni di punti, ad esempio), è molto lento. –

11

Attualmente, il più vicino possibile è ridisegnarlo di dimensioni maggiori utilizzando la funzione figsize. Si aspetta dimensioni in pollici, che mi hanno catturato la prima volta che ho provato a usarlo.

Ci sono alcune piante per un ricco backend che consentono di manipolare i grafici in tempo reale, usando HTML5, ma penso che ci vorranno ancora alcuni mesi prima che sia pronto.

Se si utilizza il notebook sul computer locale, per ora l'opzione più semplice potrebbe non essere quella di utilizzare la modalità inline, quindi i grafici appaiono come finestre separate.

+2

heh, più di qualche mese credo. – askewchan

+0

Apparentemente non ancora presente ... – Jaqo

+1

Sì, è - con una versione recente di matplotlib, ora puoi selezionare il backend nbagg. –

4

Un altro buon esempio che è emerso di recente è quello di esternalizzare il lavoro per plotly:

https://plot.ly/python/3d-plots-tutorial/

Lascia che gestiscano il rendering, il panning e lo zoom per te!

4

mpld3 ha rallentato l'esecuzione dei miei taccuini. L'ho trovato meglio utilizzare il nbagg backend che fornisce gli stessi strumenti interattivi, ma permette anche di salvare i grafici dal menu di scelta rapida:

import matplotlib 
matplotlib.use('nbagg') 
import matplotlib.pyplot as plt 
+0

Questo non ha funzionato per me. –

+0

Sinceramente penso che questa sia la migliore risposta, sembra molto meglio di mpld3 e altre funzionalità. – bznein

31

è ora possibile utilizzare %matplotlib notebook invece di %matplotlib inline e sarete in grado di interagire con le tue trame.

+5

Santa madre che sta cambiando la vita !! –

+1

Questa è un'ottima soluzione. Se lo provi e non funziona, controlla la tua versione di matplotlib.Penso che questo sia stato introdotto nella versione 1.5 – jpobst

+0

Non funziona come avrei sperato con le sottotrame; può ingrandire e fare una panoramica per un singolo sottotramma ma non può aumentare/diminuire la dimensione dell'intera immagine del grafico. Il che, per essere onesti, non era la domanda iniziale posta sopra. – ijoseph

0

matplotlib.use('nbagg') non ha funzionato neanche per me. Ho trovato mdplt3 piuttosto lento. Invece di zoomare, ho finito per ridimensionare la mia figura (rendendola grande), usando questo post: Plot width settings in ipython notebook

+0

Questo non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/17453537) – CDspace

Problemi correlati