web-dev-qa-db-ja.com

plotly.offline.iplotはJupyter Notebook / Labの出力として大きな空白フィールドを提供します

JupyterノートブックでSankeyチャートを作成しようとしています。コードは 最初の例 に基づいています。

私はこれで結局、エラーなしで実行できます:

_import numpy as npy
import pandas as pd
import plotly as ply

ply.offline.init_notebook_mode(connected=True)

df = pd.read_csv('C:\\Users\\a245401\\Desktop\\Test.csv',sep=';')

print(df.head())
print(ply.__version__)

data_trace = dict(
    type='sankey',
    domain = dict(
      x =  [0,1],
      y =  [0,1]
    ),
    orientation = "h",
    valueformat = ".0f",
    node = dict(
      pad = 10,
      thickness = 30,
      line = dict(
        color = "black",
        width = 0.5
      ),
      label =  df['Node, Label'].dropna(axis=0, how='any'),
      color = df['Color']
    ),
    link = dict(
      source = df['Source'].dropna(axis=0, how='any'),
      target = df['Target'].dropna(axis=0, how='any'),
      value = df['Value'].dropna(axis=0, how='any'),
  )
)
print(data_trace)

layout =  dict(
    title = "Test",
    height = 772,
    width = 950,
    font = dict(
      size = 10
    ),    
)
print(layout)

fig = dict(data=[data_trace], layout=layout)
ply.offline.iplot(fig, filename='Test')
_

Csvファイルは次のようになります。

_Source;Target;Value;Color;Node, Label
0;2;2958.5;#262C46;Test 1
0;2;236.7;#262C46;Test 2
0;2;1033.4;#262C46;Test 3
0;2;58.8;#262C46;Test 4
0;2;5.2;#262C46;Test 5
0;2;9.4;#262C46;Test 6
0;2;3.4;#262C46;Test 7
_

一見、さまざまな出力lookingで正常に動作しているようですが、ply.offline.iplot(fig, filename='Test')からの最終出力は大きな空白フィールド: enter image description here ノートブック内のすべてのセルを1回実行すると、ターミナルは次のようになります。 enter image description here

誰かが私がここで間違っている場所を教えてもらえますか?

14
eirikdaude

過去にJupyterでプロットオフラインで同様の問題が発生しました-プロットが表示されないとき/なぜ失敗するかは、驚くほど矛盾しています。データレートの制限を増やして、試してみる価値があります。

jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10

15
elz

私はノートブックをTrustedに変更するのを手伝いました(これによりJavascriptが有効になり、グラフをjupyterノートブックに構築するための陰鬱な方法が与えられました)。

ここにあるこのオプション:

In upper right side of notebook

2
Oysiyl

jupyter notebookサーバー(追加オプションなし)で正しい表示を取得できますがjupyter labサーバー。関連バージョン情報:

$ jupyter lab --version
0.35.5
$ jupyter notebook --version
5.7.8
$ python -c "import plotly; print(plotly.__version__)"
3.10.0

したがって、JupyterLabを使用している場合、オフラインplotlyグラフJupyterLab、次のコマンドでplotly-extensionをインストールする必要があります(以下は 関連する回答 ):

$ jupyter labextension install @jupyterlab/plotly-extension
$ jupyter labextension list 
$ jupyter lab build
1
YaOzI

これらの答えがどれもうまくいかなかった場合。これを試して

管理者権限で開かれたcondaプロンプトでこれを行う

pip install pip --upgrade
conda upgrade notebook or pip install notebook --upgrade

conda install -c conda-forge ipywidgets or pip install ipywidgets

jupyter notebookおよびipywidgetsの最新バージョンが必要です。

0
Samual

READMEのクイックスタート から

これは図を表示しますが、ここでの他の答えはどれも私にとってはうまくいきませんでした:

import plotly.graph_objs as go
fig = go.FigureWidget()
# Display an empty figure
fig

これは(新しいセルで)上記のプロットを棒グラフと折れ線グラフで変更します。

# Add a scatter chart
fig.add_scatter(y=[2, 1, 4, 3])
# Add a bar chart
fig.add_bar(y=[1, 4, 3, 2])
# Add a title
fig.layout.title = 'Hello FigureWidget'

それでもうまくいかない場合は、インストールが適切であることを確認してください。 pip install --user --upgrade plotly pipでインストールした場合

0
JobJob