8

tools.make_subplots メソッドを使用せずに、1 つの html ページに複数のプロットをプロットしたいと考えています。(読みにくいことがわかり、各サブプロットパネルに一意の凡例とレイアウトが必要なため、使用したくありません)。

独自のレイアウトを持つ 2 つの図を定義し、ページ上で任意に配置したいと考えています。html.Div オブジェクトを使用してダッシュでこれを行う方法を知っていると思いますが、プロットのみを使用してこれを行う簡単な方法があるかどうか疑問に思っていましたか?

4

2 に答える 2

10

私はまったく同じ問題に遭遇し、ここに投稿された解決策に従いました: Plotly: Esostackによるサブプロットとして複数の図をプロットする

ただし、複数の図の html を 1 つのテキスト ファイルにダンプすると、追加する図ごとにファイル サイズが 5 MB 増加することがわかりました。これの 99.9% は、プロットをインタラクティブにするために plotly によって追加された Java スクリプトが原因です。幸いなことに、js を含めるかどうかを指定するパラメーターも実装されています。したがって、次の関数で行われるように、最初の図にのみ含め、残りの図ではスキップする必要があります。それが役立つことを願っています:

def figures_to_html(figs, filename):
    '''Saves a list of plotly figures in an html file.

    Parameters
    ----------
    figs : list[plotly.graph_objects.Figure]
        List of plotly figures to be saved.

    filename : str
        File name to save in.

    '''
    import plotly.offline as pyo

    dashboard = open(filename, 'w')
    dashboard.write("<html><head></head><body>" + "\n")

    add_js = True
    for fig in figs:

        inner_html = pyo.plot(
            fig, include_plotlyjs=add_js, output_type='div'
        )

        dashboard.write(inner_html)
        add_js = False

    dashboard.write("</body></html>" + "\n")
于 2019-12-10T10:24:32.130 に答える