Plotly 中文本中的新行

问题描述 投票:0回答:2

从有关此问题的其他问题(尽管在 R 中)我了解到您应该能够在 Plotly 中的(某些?)文本元素中使用 HTML。但是,如果我尝试在添加到绘图的文本中获取新行,它只会将 html 标签显示为文本,而不是“解析”它。 我也尝试添加 ' '但这只是被忽略了。

我正在使用的跟踪代码;

trace = go.Scattergl(
    x=[0.5],
    y=[4.5],
    text=['A: {} <br> B: {}\nC: {}\nD: {}'.format(a, b, c, d)],
    mode='text'
    )

除此之外,我使用“标准”代码来生成图表;

traces = [trace]
layout = {
    'xaxis':{
        'range':[0,7],
        'showgrid': False,
    },
    'yaxis':{
        'range':[0,7],
        'showgrid': False,
    },
}
fig = dict(data=traces, layout=layout)
plot(fig)

在这种情况下如何添加新行?

python plotly
2个回答
15
投票

我发现使用

<br>
可以在悬停文本中使用,但不能在直接放置在图形上的文本中使用。 这对于我的用例来说已经足够好了,也许它也会对你有帮助? 这是一个与您在问题中提供的示例类似的示例,它演示了其中的差异。 悬停文本和注释中使用的字符串相同,但中断仅在悬停文本中注册。

import plotly.graph_objects as go

a = 1
b = 2
c = 3
d = 4

trace = go.Scattergl(
    x=[0.5],
    y=[4.5],
    text=f'A: {a} <br> B: {b}\nC: {c}\nD: {d}',
    hoverinfo='text',
    mode='markers+text'
    )

traces = [trace]
layout = {
    'xaxis':{
        'range':[0,7],
        'showgrid': False,
    },
    'yaxis':{
        'range':[0,7],
        'showgrid': False,
    },
}
fig = go.Figure(data=traces, layout=layout)
fig.show(renderer='browser')

0
投票

对于plotly Express:scatter3d

这里我首先将文本减少到最大数量 n_chars。然后我在一段时间后将文本分成换行符。连接函数中要使用的分隔符是
:

text_list_reduced: list[str] = ['<br>'.join(text[:n_chars].split('.')) for text in text_list]
fig = px.scatter_3d(x=df_data.x, y=df_data.y, z=df_data.z, color=df_data.label, text=text_list_reduced)
© www.soinside.com 2019 - 2024. All rights reserved.