如何根据信息在情节上更改文本位置?

问题描述

我有这个代码

data = go.Scatter(
          x=positionsX,y=positionsY,textposition='middle center',mode='markers+text',marker=dict(
            color=color,opacity=[1,1,1],size=[100,70,60,30,25]),text=list(sumByRegion.keys()),)

我想根据 sumByRegion.keys() 值将 textposition 更改为“左下角”。

sumByRegion.keys() 是 dict_values([55,24,16,3,2])

我现在拥有的是图像:

image

编辑:

实际上,我正在寻找为每个单独的项目设置文本位置。因此,我使用了一个 textposition 数组来解决这个问题。

data = go.Scatter(
          x=positionsX,textposition=["middle center","middle center","middle right","middle left"],)

解决方法

如果你想显示的文字是字典格式,那么你可以将它转换成你想显示的格式。我不确定所需的格式是什么,但我添加了一个换行符并添加了一个百分号。

import plotly.graph_objects as go

sumByRegion = {'USA':55,'EU':24,'Asia':16,'Africa':2,'South America':3}
text = {'{}<br>{}%'.format(k,v) for k,v in zip(sumByRegion.keys(),sumByRegion.values())}

data = go.Scatter(
          x=positionsX,y=positionsY,textposition='bottom left',mode='markers+text',marker=dict(
            color=color,opacity=[1,1,1],size=[100,70,60,30,25]),text=text,)