为了账号安全,请及时绑定邮箱和手机立即绑定

如何注释条之间的差异?

如何注释条之间的差异?

翻过高山走不出你 2023-06-20 10:41:20
我正在尝试使用注释显示条形图之间的差异。具体来说,显示所有条与第一个条之间的差异。我的代码如下所示:import plotly.graph_objects as golables = ['a','b','c']values = [30,20,10]difference = [ str(values[0] - x) for x in values[1:] ]fig = go.Figure( data= go.Bar(x=lables,y=values,width = [0.5,0.5,0.5] ) )fig.add_annotation( x=lables[0],y= values[0],                     xref="x",yref="y",                    showarrow=True,arrowhead=7,                    ax = 1200, ay= 0  )fig.add_annotation( x = lables[1], y=values[0],                    xref="x",yref="y",                    showarrow=True,arrowhead=1,                    ax = 0 , ay = 100,                    text= difference[0]                     )fig.show()结果图如下所示:a如您所见,我正在尝试使用注释来指示和之间的区别b。但我不知道如何获得水平线a和顶部之间的垂直距离b。我试图让一个箭头指向水平线的顶部b和c水平线。我想知道有没有办法获得这个垂直距离,或者有没有其他方法可以达到相同的结果?
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

垂直距离可以很容易地通过以下方式获得:

diffs = [max(values) - v for v in values]

唯一真正的挑战是让每个参数都fig.add_annotations()正确。yanchorax的正确组合ayref将为您提供此图:

//img1.sycdn.imooc.com//649111f20001b5de05940316.jpg

您可以在下面的代码片段中仔细查看详细信息。如果您不喜欢数字的位置,我们也可以解决。


完整代码:

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()


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信