web-dev-qa-db-ja.com

Google Colabの対話型matplotlib数値

通常、jupyterノートブックでは、%matplotlib notebook magicを使用して対話型ウィンドウを表示しますが、これはgoogle colabでは機能しないようです。解決策はありますか、またはグーグルコラボでインタラクティブなウィンドウを表示することはできませんか?

13
skoeb

以下は、Plotlyでiplot()を作成し、Google Colab Notebookでcufflinks()を作成する例です。回答から使用された関数と提案 [12]

重要なのは、プロットを行うセルにconfigure_plotly_browser_state()を含めることです。

以下のコードが機能するはずです:

ライブラリのインポート

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()

ノートブックをfalseに設定

init_notebook_mode(connected=False)

Colabの関数を作成: [12]

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>
        '''))

サンプルデータフレームの作成

データソース:Peachtree Cityの年間雨量データ、GA 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

インタラクティブなiplotを作成する

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()

出力: enter image description here

enter image description here

[注:x、y、タイトルは表示されません!現時点では。]

3
Nilesh Ingle

これはバックエンドの問題のようです。 jupyterノートブックでは、さまざまなタイプのバックエンドをリストするコマンドは次のとおりです。

%matplotlib --list

出力:

Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'wx', 'qt4', 'qt5', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 'widget']

しかし、私のシステム/セットアップでは、「ノートブック」と他の1つだけが機能します。私にとって、jupyter labsでは、バックエンドは対話型グラフでは動作しません(推奨される「インライン」であっても)。

それが私が行った検索/インストール/再インストールの順列の時間を減らすことを願っています:))

1
BigH