python条形图数据标签_python – Plotly中用于条形图的单独标记条形图

我试图为分组条形图创建注释 – 其中每个条形图都有一个特定的数据标签,显示该条形图的值并位于条形图的中心上方.

我尝试对教程中的示例进行简单修改以实现此目的,如下所示:

import plotly.plotly as py

import plotly.graph_objs as go

x = ['Product A', 'Product B', 'Product C']

y1 = [20, 14, 23]

y2 = [12, 18, 29]

annotations1 = [dict(

x=xi,

y=yi,

text=str(yi),

xanchor='auto',

yanchor='bottom',

showarrow=False,

) for xi, yi in zip(x, y1)]

annotations2 = [dict(

x=xi,

y=yi,

text=str(yi),

xanchor='auto',

yanchor='bottom',

showarrow=False,

) for xi, yi in zip(x, y2)]

annotations = annotations1 + annotations2

trace1 = go.Bar(

x=x,

y=y1,

name='SF Zoo'

)

trace2 = go.Bar(

x=x,

y=y2,

name='LA Zoo'

)

data = [trace1, trace2]

layout = go.Layout(

barmode='group',

annotations=annotations

)

fig = go.Figure(data=data, layout=layout)

plot_url = py.plot(fig, filename='stacked-bar')

但是,数据标签不是以单个条形为中心,而是在每组条形图的中心上方.我想知道是否有解决方法,而不是手动注释.

解决方法:

这有点过于苛刻,但它完成了工作.

x = ['Product A', 'Product B', 'Product C']

y1 = [20, 14, 23]

y2 = [12, 18, 29]

xcoord = [0,1,2]

annotations1 = [dict(

x=xi-0.2,

y=yi,

text=str(yi),

xanchor='auto',

yanchor='bottom',

showarrow=False,

) for xi, yi in zip(xcoord, y1)]

annotations2 = [dict(

x=xi+0.2,

y=yi,

text=str(yi),

xanchor='auto',

yanchor='bottom',

showarrow=False,

) for xi, yi in zip(xcoord, y2)]

annotations = annotations1 + annotations2

标签:python,r,bar-chart,plotly

来源: https://codeday.me/bug/20190528/1168463.html

你可能感兴趣的:(python条形图数据标签)