如何在Plotly的悬停文本中换行长文本?

14

我有一个悬停文本,其中包含一行很长的文字(大约200个字符)。问题是它变成了整个图形的一个长方形,并且不可能看到完整的文本,因为它被截断。

我的数据在一个数据框中。我正在绘制 x 和 y,只添加一个 z 变量,其中包含悬停文本的描述。

我的绘图

是否可以调整文本框的高度和宽度?或者我能将文本分成几行吗?

这是我目前的代码:

fig = make_subplots(rows=2, cols=1,column_widths=[1], 
                    subplot_titles=["A", "B"])
fig.add_trace(
    go.Scatter(
        x=df.varA,
        y=df.varB,
        hovertext = df.varC,
        marker=dict(color='darkblue'),
        mode = 'markers'
    ), row=1, col=1)

fig.add_trace(
    go.Scatter(
       x=df.varA,
        y=df.varB,
        hovertext = df.varC,
        marker=dict(color='darkblue'),
        mode = 'markers'
        ), row=2, col=1)


fig.update_layout(barmode='stack',showlegend=False, height=900, width=1000,title_text="Example")
fig.show()

请帮助我 :)

2个回答

12

由于plotly可以读取包含标签的html,因此您可以在要显示为换行的df变量的文本中插入\n和换行标记<br>

df.varA = df.varA.str.wrap(30)
df.varA = df.varA.apply(lambda x: x.replace('\n', '<br>'))

1
一行代码:hovertext = df.varC.str.wrap(30).apply(lambda x: x.replace('\n', '<br>')) - mchristos
1
我爱你 @mChristos :) - nmu

5

根据文档,似乎字符串支持HTML标记。

因此,您可以在字符串中添加一些<br>标记来换行:

label = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>Sed eget arcu sit amet purus volutpat euismod sed id quam.

8
如果您有兴趣的话,我现在使用了:hovertext = df.varC.apply(lambda txt: '<br>'.join(textwrap.wrap(txt, width=50)))。 (注:这段代码是Python代码,用于数据处理中对一个DataFrame的某个列进行字符换行和格式化处理) - jessirocha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接