Аннотации к столбчатой диаграмме с плотным наложением

#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 и заставили меня много работать…