简体   繁体   中英

How to create a subplot with shared x-axis and range slider in Python Plotly

I'm trying to create a specific plot with Python and Plotly. I was wondering if it's possible to create a plot with 3 subplots arranged vertically ( https://plot.ly/python/subplots/ ) that have a shared x-axis, along with a range slider that controls the x-axis ( https://plot.ly/python/range-slider/ )?

截至2017年1月,你不能这样做,请看这里: https//github.com/plotly/plotly.js/issues/1250

Today, Jan 24th 2017, I have managed to create stacked plots that share one x-axis, in combination with a range slider. However, the problem is that the range of the y-axis is automatically set. I cannot control it. This is a plroblem for me. My code is:

trace_1 = go.Scatter(
    x=time_station1,
    y=turb_station1,
    mode = 'lines+markers',
    name = 'Turbidity',
    connectgaps = False,
    marker = dict(
        size = 5,
        color = 'rgb(64, 97, 139)',
        line = dict(
            width = 1,
            color = 'rgb(64, 97, 139)' 
        )
    )
)
trace_2 = go.Scatter(
    x=time_station1,
    y=battery_station1,
    yaxis='y2',
    mode = 'lines+markers',
    name = 'Battery',
    connectgaps = False,
    marker = dict(
        size = 5,
        color = 'rgb(117, 15, 7)',
        line = dict(
            width = 1,
            color = 'rgb(117, 15, 7)'
        )
    )
)
trace_3 = go.Scatter(
    x=time_station1,
    y=cond_station1,
    yaxis='y3',
    mode = 'lines+markers',
    name = 'Conductivity',
    connectgaps = False,
    marker = dict(
        size = 5,
        color = 'rgb(130, 0, 132)',
        line = dict(
            width = 1,
            color = 'rgb(130, 0, 132)'
        )
    )
)
trace_4 = go.Scatter(
    x=time_station1,
    y=depth_station1,
    yaxis='y4',
    mode = 'lines+markers',
    name = 'Depth',
    connectgaps = False,
    marker = dict(
        size = 5,
        color = 'rgb(204, 100, 0)',
        line = dict(
            width = 1,
            color = 'rgb(204, 100, 0)'
        )
    )
)
trace_5 = go.Scatter(
    x=time_station1,
    y=temp_station1,
    yaxis='y5',
    mode = 'lines+markers',
    name = 'Temperature',
    connectgaps = False,
    marker = dict(
        size = 5,
        color = 'rgb(255, 255, 0)',
        line = dict(
            width = 1,
            color = 'rgb(255, 255, 0)'
        )
    )
)

layout = go.Layout(
    title='Station ABC',
    xaxis = dict(
        rangeselector=dict(
            buttons = list([
                dict(count=1,
                     label='1min',
                     step='minute',
                     stepmode='backward'),
                dict(count=24,
                     label='24h',
                     step='hour',
                     stepmode='backward'),    
            ])
        ),
        rangeslider=dict(),
        type='date',
        title='Date and Time'
    ),
    yaxis=dict(
        domain=[0,0.15]),
    yaxis2=dict(
        domain=[0.2,0.35]),
    yaxis3=dict(
        domain=[0.4,0.55]),
    yaxis4=dict(
        domain=[0.4,0.75]),
    yaxis5=dict(
        domain=[0.8,1]),
        )

data = [trace_1, trace_2, trace_3, trace_4, trace_5]

plot_url = py.plot(fig, filename='offline plot.html')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM