Same type of plot in separate subplot causes un-hideable rangelsider

Hey everyone. My first post on the forum though I’ve been reading up on quite a bit of the knowledgebase here as I become familiar with plotly.

I seem to be running into a bug where when trying to render two types of the same plot in two different subplots, one of the plots will create its own rangeslider which I can’t hide using the xaxis_rangeslider_visible=False flag.

As you can see here, the second from the top plot is generating a rangeslider at the bottom, and overlapping with a third plot I have rendered at the bottom row. I have been unable to find out why this occurs as I should be hiding every range slider on the x axis from displaying.

The plot type in question is a candlestick, and the code to run it is as follows (recursively run for as many times as I want to display the chart, in this case 2):

fig.add_trace(go.Candlestick(x=df['Datetime'],
                                open=df['Open'],
                                high=df['High'],
                                low=df['Low'],
                                close=df['Close']),
                                secondary_y=args.trades, row=study["row"], col=study["col"])

The reason for doing this is that I want to display different overlays on top of each price map, with the base candlestick price map serving as a common denominator between both subplots.

I have also found that this issue does not (necessarily) persist when using other types of studies, such as scatterplots:

The same code, but replacing the second candlestick chart with instead the stochastic scatterplot that was originally rendered at the third row.

As can be seen, these are two plots displaying the exact same data, however no rangeslider is visible.

Any insight to this would be much appreciated–I’m unclear on whether this is a bug or simply user error. I would be happy to provide more details as needed regarding the specifics of the code.

Edit: Upon further testing I’ve narrowed down the issue. The issue only occurs when attempting to render price data in any row except the first one, even as the only subplot containing price information.

In the above image, the price is only rendered in the bottom row (the top row while similar in appearance is only a collection of averages derived from the price data). And as shown here, the price data creates its very own rangeslider.

This does not occur to my knowledge with any other plot type except what seems to be both Candlestick and OHLC (though I’m not sure whether the plot type in fact has anything to do with the issue).

I’ve identified the issue. Apparently the following code

fig.update_layout(
            xaxis_rangeslider_visible=False
        )

does not hide the rangeslide in all circumstances, such as the scenario I posted above (though it does do it in most). To fix the above edge case I had to add the following separate parameter.

            rangeslider=dict(
                visible=False
            ), matches='x')

Hope this helps.

1 Like