Plotly: How to add borders and sidelabels to subplots, and syncronize panning?

前端 未结 1 1863
情深已故
情深已故 2020-12-31 20:32

The following graph is my attempt to use Plotly in Python (code at the very bottom) to do 2x2 plot.

I am trying to improve the graph but I can\'t seem to do the fol

相关标签:
1条回答
  • 2020-12-31 21:23

    Here's a suggestion that should be very close to 100%, at least regarding what's actually possible at the moment:

    1. Subplot borders: fig_update_xaxes(mirror=True)

    2. You're already as close as you're going to get at the moment

    3. Sidelabels: fig['layout']['xaxis']['title']='Label x-axis 1'

    Plot:

    Code:

    #import plotly.offline as poff
    #import plotly.tools as tls
    
    from plotly.subplots import make_subplots
    import plotly.graph_objects as go
    import pandas as pd
    
    x = list(range(10,20))
    y = x
    y1 = [10-i for i in x]
    y2 = [abs(i-5) for i in x]
    y3 = [abs(2*i- 5) for i in x]
    
    fig = make_subplots(rows=2, cols=2, shared_xaxes=True, shared_yaxes=True,
                        #vertical_spacing=0.1,
                        #horizontal_spacing=0.05,
                        print_grid=True,)
    
    fig.append_trace(go.Scatter({'x':x, 'y':y, 'name':'A1'},), 1, 1)
    fig.append_trace(go.Scatter({'x':x, 'y':y1, 'name':'B2'},), 2, 2)
    fig.append_trace(go.Scatter({'x':x, 'y':y2, 'name':'A2'},), 2, 1)
    fig.append_trace(go.Scatter({'x':x, 'y':y3, 'name':'B1'},), 1, 2)
    
    fig['layout'].update(title='Multiple Subplots')
    
    fig.update_xaxes(showline=True, linewidth=1, linecolor='black', mirror=True)
    fig.update_yaxes(showline=True, linewidth=1, linecolor='black', mirror=True)
    
    # edit axis labels
    fig['layout']['xaxis']['title']='Label x-axis 1'
    fig['layout']['xaxis2']['title']='Label x-axis 2'
    
    fig['layout']['xaxis3']['title']='Label x-axis 3'
    fig['layout']['xaxis4']['title']='Label x-axis 4'
    
    fig['layout']['yaxis']['title']='Label y-axis 1'
    fig['layout']['yaxis2']['title']='Label y-axis 2'
    
    fig['layout']['yaxis3']['title']='Label x-axis 3'
    fig['layout']['yaxis4']['title']='Label x-axis 4'
    
    fig.show()
    
    0 讨论(0)
提交回复
热议问题