Насколько мне известно, прямого способа изменить положение меток внутри столбцов нет. Но вы можете легко бросить ярлыки и использовать собственные аннотации вместо этого, чтобы получить:
Полный код:
from plotly import graph_objs as go
from plotly.subplots import make_subplots
meses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']
rlzd = [335101.3, 693658.5, 335101.3, 800019, 514379, 594379, 581279, 310029, 485022, 692091, 227918]
meta = [660756.5, 658980.9, 527478.1, 800019, 603574.5, 584198.7, 590098, 571476.2, 616965.7, 676205.1, 617237.94, 613634.7]
fig = make_subplots(rows=1, cols=2, column_widths=[0.85, 0.15], print_grid=True, horizontal_spacing=0.05)
fig.add_trace(go.Bar(
x=meses,y = rlzd,
text=rlzd,
textfont=dict(size=15,color='rgba(0,0,0,0)'),
textposition='outside',
name = 'Realizado',
showlegend=True),
row=1, col=1)
fig.add_trace(go.Scatter(
x=meses,y=meta,
name='Meta',
mode='markers+lines+text',
text=meta,
textfont=dict(size=13,color='black'),
textposition="top right",
marker_size=8,
showlegend=True,
line = go.scatter.Line(color="DarkBlue", dash='dot')),
row=1, col=1)
# you've got one more month than
# youve got elements in the list rlzd
# the following two lines takes that
# into consideration
length_diff = len(meses)-len(rlzd)
rlzd.extend(['']*length_diff)
# adds annotatoins for each month / bar
for i, m in enumerate(meses):
fig.add_annotation(dict(font=dict(color="white",size=12),
#x=x_loc,
x=i,
y=0.05,
showarrow=False,
text=rlzd[i],
textangle=-90,
xref="x",
yref="paper"
))
fig.show()