1

ipython ノートブック内の plot.ly ライブラリを使用して、matplotlib プロットを置き換える実験を行っています。基本的に私が抱えている問題は、自動サイズ調整された plot.ly プロットがあまりよく見えず、手動で微調整しようとしましたが、常にノートブックの垂直方向に切り刻まれることです。

N 行 x 2 または 3 列に配列されたプロットをよく行います。これらのプロットのデータは、多くの場合、多くのキーを持つマルチインデックスを持つ pandas データ フレームから取得されます。プロットは通常、データ対インデックス位置であり、インデックス キーに一致する目盛りラベルが付いています。したがって、目盛りラベルは通常長い文字列であり、プロット間で共有されることはありません (共有軸は使用できません)。ipython ノートブックの Matplotlib 出力は、垂直方向に必要な限り一般的に拡大縮小するようにレンダリングします。少し手動で微調整すると、問題ないように見えます。

ノートブックでの Plot.ly の出力は、この点で制限されているようです。一部の plot.ly デモ コードを変更したところ、ノートブックで目盛りラベルが切り落とされたり、プロットの一番上のプロット行に侵入したりしました。以下の例。

設定したレイアウトオブジェクトで、autosize=False幅と高さの調整を開始し、各 YAxis オブジェクトのドメインを設定すると、改善できます。しかし、すべてを収めて適切なサイズのプロット エリアを確保することは困難です。物事は常に下から切り落とされているようで、これはたった 2 行のプロットです。物事をより多くの行にスケーリングする方法が今のところわかりません。

import plotly.plotly as py
from plotly.graph_objs import *

trace1 = Scatter(
    x=["A,4.0,AS-15-8045,830,lot45", "A,5.0,AS-15-8045,830,lot45", "A,6.0,AS-15-`8045,830,lot45"],
    y=[4, 5, 6],xaxis='x1',yaxis='y1',name='A series set'
)
trace3 = Scatter(
    x=["B,4.0,AS-15-8045,830,lot03", "B,5.0,AS-15-8045,830,lot04", "B,6.0,AS-15-8045,830,lot05"],
    y=[600, 700, 800],xaxis='x3',yaxis='y3',name='B series dataset'
)
trace2 = Scatter(x=[20, 30, 40],y=[50, 60, 70],xaxis='x2',yaxis='y2')
trace4 = Scatter(x=[4000, 5000, 6000],y=[7000, 8000, 9000],xaxis='x4',yaxis='y4')

data = Data([trace1, trace2, trace3, trace4])

layout = Layout(
    xaxis1 = XAxis(domain=[0, 0.45],anchor='y1',title='x1'),
    yaxis1 = YAxis(domain=[0, 0.45],anchor='x1',title='y1'),
    xaxis2 = XAxis(domain=[0.55, 1],anchor='y2',title='x2'),
    yaxis2 = YAxis(domain=[0, 0.45],anchor='x2',title='y2'),
    xaxis3 = XAxis(domain=[0, 0.45],anchor='y3',title='x3'),
    yaxis3 = YAxis(domain=[0.55, 1],anchor='x3',title='y3'),
    xaxis4 = XAxis(domain=[0.55, 1],anchor='y4',title='x4'),
    yaxis4 = YAxis(domain=[0.55, 1],anchor='x4',title='y4')
)
fig = Figure(data=data, layout=layout)
py.iplot(fig)
4

2 に答える 2

2

免責事項、私は Plotly で働いています。

GitHub ページで問題を作成しました: https://github.com/plotly/python-api/issues/218

from IPython.display import IFrameのところ、プロットを新しいセルに表示することができましたIFrame(src=your_url, width=your_width, height=your_height).

それは今のところあなたにとってうまくいきますか?以下で試したことを示す要旨をコメントにドロップします。

于 2015-05-23T23:17:57.243 に答える
0

widthheightkwargs をpy.iplot直接使用することもできます。

ユーザー ガイドの例を次に示します。

于 2015-05-25T14:37:20.217 に答える