Why when using “fig.update_traces(xaxis=‘x1’)” it doesn’t print axis tick and labels bellow second subplot?
This code is used to extended line hover to all subplots.
If I comment this line, then it normally plots axis tick and labels bellow second subplot. See penultimate line.
import yfinance as yf
import plotly.graph_objects as go
from plotly.subplots import make_subplots
ticker = “AAPL”
df = yf.download(ticker, start=“2021-01-01”)
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.05, row_heights=[0.7, 0.3])
fig.add_trace(go.Candlestick(x=df.index,
open=df[‘Open’],
high=df[‘High’],
low=df[‘Low’],
close=df[‘Close’],
name = ticker,
), row=1, col=1)
colors = [‘green’ if (row[‘Close’] - row[‘Open’]) >= 0
else ‘red’ for index, row in df.iterrows()]
fig.add_trace(go.Bar( x=df.index,
y=df[‘Volume’],
marker_color=colors,
name = ‘Volume’,
hovertemplate = “Volume: %{y:,.0f}”,
), row=2, col=1)
fig.update_layout(
xaxis_rangeslider_visible=False,
hovermode=‘x unified’,
xaxis2=dict(
tickformat = ‘%d/%m/%Y’, # this controls the format of the x-value in the hover box
ticks = “outside”,
type = “date”,
tickmode = “auto”,
),
)
spike line hover extended to all subplots
fig.update_traces(xaxis=‘x1’)
fig.show()