Normalement, dans un cahier jupyter, j'utiliserais %matplotlib notebook
magic pour afficher une fenêtre interactive, mais cela ne semble pas fonctionner avec google colab. Existe-t-il une solution ou n'est-il pas possible d'afficher des fenêtres interactives dans google colab?
Voici un exemple de création interactive de iplot()
dans Plotly et cufflinks()
sur Google Colab Notebook. Fonctions utilisées et suggestions de la réponse [1 , 2]
La clé semble être d'inclure configure_plotly_browser_state()
dans la cellule qui fait le tracé.
Le code ci-dessous devrait fonctionner:
Importer des bibliothèques
import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly.offline import iplot
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
cf.go_offline()
Définir le bloc-notes sur faux
init_notebook_mode(connected=False)
Créer une fonction pour Colab copiée de: [1 , 2]
def configure_plotly_browser_state():
import IPython
display(IPython.core.display.HTML('''
<script src="/static/components/requirejs/require.js"></script>
<script>
requirejs.config({
paths: {
base: '/static/base',
plotly: 'https://cdn.plot.ly/plotly-1.5.1.min.js?noext',
},
});
</script>
'''))
Créer un exemple de trame de données
Source de données: données annuelles sur les précipitations pour la ville de Peachtree, GA du National Weather Service [3] .
df = pd.DataFrame({
'month': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
'Year_2018': [3.26, 6.11, 4.86, 6.53, 4.45, 3.86, 8.04, 7.59, 1.48, 4.75, 7.27, 11.83],
'Year_1996': [8.26, 3.82, 6.42, 2.91, 2.12, 1.70, 2.14, 4.66, 4.32, 0.89, 3.22, 4.14]
}
)
df
Créez un iplot interactif
configure_plotly_browser_state()
df.iplot(kind='line',x='month',y=['Year_2018', 'Year_1996'], color=['white', 'gold'],
theme='solar', mode='markers+lines',title='Annual Rainfall in the city Peachtree City, GA')
plt.show()
[Remarque: les titres x, y, ne s'affichent pas! en ce moment.]
Cela semble être un problème de backend. Dans les cahiers jupyter, la commande pour lister les différents types de backends est:
%matplotlib --list
Sortie:
Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'wx', 'qt4', 'qt5', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 'widget']
Cependant, pour mon système/configuration, seul 'notebook' et un autre fonctionnent. Dans les laboratoires jupyter, pour moi, aucun des backends ne fonctionne pour les graphiques interactifs (même le "inline" qui est ce qu'ils recommandent).
J'espère que cela réduit les heures de recherches et de permutations d'installation/réinstallation que j'ai effectuées :))