Plotly saving multiple plots into a single html

前端 未结 3 1545
臣服心动
臣服心动 2021-02-01 09:57

I recently discovered plotly and find it really good for graphing, now I have a problem which I want to save multiple plot into a single html, how to do it please?

*I wa

3条回答
  •  面向向阳花
    2021-02-01 10:43

    Here is an example that looks pretty good:

    import plotly.graph_objects as go
    from plotly.subplots import make_subplots
    import plotly.figure_factory as ff
    import numpy as np
    import plotly
    
    y1 = np.random.randn(200) - 1
    y2 = np.random.randn(200)
    y3 = np.random.randn(200) + 1
    x = np.linspace(0, 1, 200)
    
    colors = ['#3f3f3f', '#00bfff', '#ff7f00']
    
    fig = make_subplots(
        rows=3, cols=2,
    
    
    
        column_widths=[0.55, 0.45],
        
    
    
        row_heights=[1., 1., 1.],
        specs=[[{"type": "scatter"}, {"type": "xy"}],
               [{"type": "scatter"}, {"type": "xy", "rowspan": 2}],
               [{"type": "scatter"},            None           ]])
    
    
    fig.add_trace(
        go.Scatter(x = x, 
                    y = y1,
                    hoverinfo = 'x+y',
                    mode='lines',
                    line=dict(color='#3f3f3f',
                    width=1),
                    showlegend=False,
                    ),
        row=1, col=1
    )
    
    fig.add_trace(
        go.Scatter(x = x, 
                    y = y2,
                    hoverinfo = 'x+y',
                    mode='lines',
                    line=dict(color='#00bfff',
                    width=1),
                    showlegend=False,
                    ),
        row=2, col=1
    )
    
    fig.add_trace(
        go.Scatter(x = x, 
                    y = y3,
                    hoverinfo = 'x+y',
                    mode='lines',
                    line=dict(color='#ff7f00',
                    width=1),
                    showlegend=False,
                    ),
        row=3, col=1
    )
    
    
    boxfig= go.Figure(data=[go.Box(x=y1, showlegend=False, notched=True, marker_color="#3f3f3f", name='3'),
                            go.Box(x=y2, showlegend=False, notched=True, marker_color="#00bfff", name='2'),
                            go.Box(x=y3, showlegend=False, notched=True, marker_color="#ff7f00", name='1')])
    
    for k in range(len(boxfig.data)):
         fig.add_trace(boxfig.data[k], row=1, col=2)
    
    group_labels = ['Group 1', 'Group 2', 'Group 3']
    hist_data = [y1, y2, y3]
    
    distplfig = ff.create_distplot(hist_data, group_labels, colors=colors,
                             bin_size=.2, show_rug=False)
    
    for k in range(len(distplfig.data)):
        fig.add_trace(distplfig.data[k],
        row=2, col=2
    )
    fig.update_layout(barmode='overlay')
    plotly.offline.plot(fig, filename='test.html')
    #fig.show()
    

提交回复
热议问题