問題の現象
現象が発生した経緯
Jupyter Notebook上で同じコードを使って何度もプロットを繰り返していると、ある時からグラフが表示されなくなった。
プロット回数の制限を超えたのかと思い、数日経ってから再度プロットを実行してみたが表示されなかった。
現象が発生したコード
Notebook
import numpy as np
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
from plotly.graph_objs import Scatter3d
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode()
scatter = Scatter3d(x=x, y=y, z=z, mode='lines')
iplot([scatter])
現象の発生条件
- PlotlyのOfflineモードを使っている
- Jupyter Notebook上にプロット
現象発生時の環境
- OS: OS X El Capitan
- Python: 3.5.2
- Plotly: 1.12.9
回避策
Plotlyのバージョンを1.9.5に変更したらプロットできるようになった。今のところは正常に動いている。
condaではインストールできないのでpipでインストールした。
pip install plotly==1.9.5
調査した内容
試したこと
-
init_notebook_mode()
をinit_notebook_mode(connected=True)
に変更 → NG - Plotlyの再インストール → NG
conda remove plotly
conda clean -p
conda install plotly
- VMWare Fusion上のWindows 10で実行 → NG
-
iplot
をplot
に変更(Jupyter Notebook外にプロット) → OK
プロット回数の制限
Plotly API rate limits
1日に50回までという制限があるが、日をまたいでの制限についての記述はない。
同様の現象についての報告
Offline Mode in Jupyter Notebook shows blank graphs - API / Python - Plotly Forum
同じような現象が2016年8月から継続的に報告されている。
iplot doesn't display the graph at first in a new browser · Issue #506 · plotly/plotly.py
Plotly 1.9.5にダウングレードしたら直ったと書いてある。