J'utilise IPython avec --pylab=inline
et j'aimerais parfois passer rapidement à l'interface graphique interactive et zoomable matplotlib pour visualiser les tracés (celui qui apparaît lorsque vous tracez quelque chose dans une console Python de terminal). Comment pourrais-je faire ça? De préférence sans quitter ni redémarrer mon notebook.
Le problème avec les tracés en ligne dans le notebook IPy est qu'ils ont une résolution limitée et que je ne peux pas les agrandir pour voir des parties plus petites. Avec l'interface graphique de maptlotlib qui commence à partir d'un terminal, je peux sélectionner un rectangle du graphique sur lequel je veux zoomer et les axes s'ajustent en conséquence. J'ai essayé d'expérimenter avec
from matplotlib import interactive
interactive(True)
et
interactive(False)
mais cela n'a rien fait. Je n'ai pas non plus trouvé d'indice en ligne.
la source
%matplotlib notebook
worksRéponses:
Selon la documentation , vous devriez pouvoir basculer d'avant en arrière comme ceci:
et cela fera apparaître une fenêtre de tracé régulière (un redémarrage sur le portable peut être nécessaire).
J'espère que ça aide.
la source
%pylab qt
. Ne fonctionne pas sous OS X. Peut-être que dans Ubuntu, cela aidera.Si tout ce que vous voulez faire est de passer des graphiques en ligne aux graphiques interactifs et inversement (pour pouvoir faire un panoramique / zoomer), il est préférable d'utiliser la magie de% matplotlib.
et retour au html
% pylab magic importe un tas d'autres choses et peut même entraîner un conflit. Il fait "from pylab import *".
Vous pouvez également utiliser un nouveau backend de notebook (ajouté dans matplotlib 1.4):
Si vous souhaitez avoir plus d'interactivité dans vos graphiques, vous pouvez consulter mpld3 et bokeh . mpld3 est génial, si vous n'avez pas des tonnes de points de données (par exemple <5k +) et que vous voulez utiliser la syntaxe normale de matplotlib, mais plus d'interactivité, par rapport au notebook% matplotlib. Bokeh peut gérer beaucoup de données, mais vous devez apprendre sa syntaxe car il s'agit d'une bibliothèque séparée.
Vous pouvez également consulter pivottablejs (pip install pivottablejs)
Aussi cool que soit l'exploration de données interactive, elle peut totalement gâcher la reproductibilité. Cela m'est arrivé, alors j'essaie de ne l'utiliser que très tôt et de passer à matplotlib / seaborn en ligne pur, une fois que j'ai pris connaissance des données.
la source
Warning: Cannot change to a different GUI toolkit: notebook. Using qt instead.
pour%matplotlib notebook
.ImportError: Failed to import any qt binding
pour la commande magique qtÀ partir de matplotlib 1.4.0, il existe maintenant un backend interactif à utiliser dans le notebook
Il existe quelques versions d'IPython qui n'ont pas cet alias enregistré, la solution de rechange est:
Si cela ne fonctionne pas, mettez à jour IPython.
Pour jouer avec ça, allez sur tmpnb.org
et coller
dans une cellule de code (ou simplement modifier le cahier de démonstration Python existant)
la source
Une meilleure solution à votre problème pourrait être la bibliothèque de graphiques . Il vous permet d'utiliser l'excellente bibliothèque javascript Highcharts pour créer de superbes graphiques interactifs. Highcharts utilise la
svg
balise HTML pour que tous vos graphiques soient en fait des images vectorielles.Certaines fonctionnalités:
Avertissement: je suis le développeur de la bibliothèque
la source
J'utilise ipython dans "jupyter QTConsole" d'Anaconda à www.continuum.io/downloads le 28/05/2011.
Voici un exemple pour basculer entre une fenêtre séparée et un mode de tracé en ligne à l'aide de la magie ipython.
la source
%matplotlib
j'obtiens une erreur qui se termine parImportError: No module named 'PyQt4'
sudo apt-get install python-pyqt5
ousudo apt-get install python-pyqt5
Redémarrez le noyau et effacez la sortie (si vous ne démarrez pas avec un nouveau notebook), puis exécutez
Pour plus d'informations, accédez à Tracer avec matplotlib
la source
Vous pouvez utiliser
%matplotlib qt
Si vous obtenez l'erreur,
ImportError: Failed to import any qt binding
installez PyQt5 en tant que:pip install PyQt5
et cela fonctionne pour moi.la source