#python #annotations #bar-chart #plotly #stacked-chart
#python #аннотации #столбчатая диаграмма #плотный #stacked-chart
Вопрос:
Я пытался создать аннотации для столбчатых диаграмм с плотным наложением на основе примера из учебника — стилизованной столбчатой диаграммы с прямыми метками
Я изменил пример, как показано ниже:
import plotly.plotly as py
import plotly.graph_objs as go
x1 = ['Product A', 'Product B', 'Product C']
y1 = [20, 14, 23]
x2 = ['Product A', 'Product B', 'Product C']
y2 = [40, 10, 55]
bar1 = go.Bar(
x=x1,y=y1,
marker=dict(
color='rgb(158,202,225)'
),
opacity=0.6,
name = 'Type 1'
)
bar2 = go.Bar(
x=x2,y=y2,
marker=dict(
color='rgb(158,202,0)'
),
opacity=0.6,
name = 'Type 2'
)
data = [bar1, bar2]
annotation1 = [dict(x=xi,y=yi,
text=str(yi),
xanchor='center',
yanchor='bottom',
showarrow=False,
) for xi, yi in zip(x1, y1)]
annotation2 = [dict(x=xi,y=yi,
text=str(yi),
xanchor='center',
yanchor='bottom',
showarrow=False,
) for xi, yi in zip(x2, y2)]
layout = go.Layout(annotations=annotation1 annotation2, barmode="stack")
fig = go.Figure(data=data, layout=layout)
url5 = py.plot(fig, filename = 'bar-direct-labels', sharing = 'secret', fileopt = 'overwrite')
Который создал этот график:https://plot.ly /~ Альт.Руденко/918/тип-1-против-типа-2/
Как я могу выровнять текст аннотации с правильным типом продукта, чтобы текст отображался в середине столбчатой диаграммы соответствующего типа продукта? Я попытался сдвинуть y
в annotation2
на y1
(y = yi y1)
, но это не помогло.
Комментарии:
1. Какую версию plotly это использует? Все изменилось около 4.0.
2. @JDL Я использую plotly 1.12.9 (я только что обновился до него).
3. хм, номера версий должны отличаться для интерфейсов R и python. Я пользователь R; Я позволю кому-нибудь со знанием Python ответить на этот вопрос.
4. Спасибо @JDL! Я тоже использую R. Как вы решили это в R?
5. Короткий ответ таков: с новой версией у меня этого нет! plotly полностью изменили свой API и заставили меня много работать…