1 回答

TA贡献1946条经验 获得超3个赞
垂直距离可以很容易地通过以下方式获得:
diffs = [max(values) - v for v in values]
唯一真正的挑战是让每个参数都fig.add_annotations()
正确。yanchor
和ax
的正确组合ayref
将为您提供此图:
您可以在下面的代码片段中仔细查看详细信息。如果您不喜欢数字的位置,我们也可以解决。
完整代码:
import plotly.graph_objects as go
labels = ['a','b','c']
values = [30,20,10]
diffs = [max(values) - v for v in values]
diff_labels = dict(zip(labels, diffs))
#print(diff_labels)
fig = go.Figure( data= go.Bar(x=labels,y=values,width = [0.5,0.5,0.5] ) )
for k, v in diff_labels.items():
if v > 0:
print(v)
fig.add_annotation(x=k, y=max(values)-v, ax=0,
yanchor='bottom',
ay=max(values), ayref='y',
showarrow=True, arrowsize=2,
arrowhead=1,
text = v
)
fig.add_traces(go.Scatter(x=labels, y=[max(values)]*3, mode = 'lines',
line=dict(color='black', width=1)))
fig.show()
添加回答
举报