gpt4 book ai didi

python - Plotly 中文本标签的背景颜色?

转载 作者:行者123 更新时间:2023-12-04 12:23:59 25 4
gpt4 key购买 nike

我在 Python 中使用 Plotly 显示了一个暗淡减少的 Word Embedding 的一部分。
我正在使用 3D 散点图,到目前为止一切正常,使用以下代码(分解):

fig = go.Figure()
trace = go.Scatter3d(
x=df[0],
y=df[1],
z=df[2],
text=df.index,
mode="markers+text",
textfont=dict(
color=["crimson"]),
marker=dict(
size=3),
hoverinfo="skip")

fig.add_trace(trace)

fig.show()
我遇到的唯一问题是数据点的一些标签重叠,这导致它们乍一看不可读。
是否可以指定文本标签的背景颜色?
编辑:
我的 df 的前 5 行看起来像这样,所有数据都是这样构建的。索引是单词,三列是它在 3D 空间中的位置。
                        0         1         2
chancellor 1.102989 0.416767 2.071260
abdicate 0.028073 1.156498 1.911484
overthrow 2.435294 -0.305266 0.998094
candidate 0.259697 0.648845 0.448700
elections 0.122355 0.815206 1.107913
但是,我的问题实际上并不与数据有关,而是与自定义可视化的可能性有关。
编辑 2:
这就是我的 plotly 的样子。
enter image description here
正如您在左下方的集群中看到的那样,大多数标签彼此重叠。我现在希望有一个隐藏参数可以用来使这些标签更好地可见,并且我本能地寻找一种方法来为所有这些标签添加白色背景,以便这会阻止后面数据点的标签他们。

最佳答案

我找到了一种解决方法,即不使用 text -parameter 在跟踪定义中,但通过为每个数据点添加注释。代码现在看起来像这样:

trace = go.Scatter3d(
x=df[0],
y=df[1],
z=df[2],
mode="markers",
marker=dict(size=3),
hoverinfo="skip")

annos = []
first = True
for index, row in df.iterrows():
if first:
col = "black"
first = False
else:
col = "black"

anno = dict(x=row[0],
y=row[1],
z=row[2],
text=index,
showarrow=True,
arrowhead=0,
font=dict(color=col),
ax=0,
ay=-20,
bgcolor="white",
opacity=0.85)

annos.append(anno)

fig = go.Figure()
fig.add_trace(trace)
fig.update_layout(scene=dict(annotations=annos)
作为注释实现的标签现在具有白色背景,即使它们后面有更多数据点,也可以读取它们。遗憾的是,这些标签的分层并不遵循相机的视角,而只是遵循 y 轴上的位置。因此,具有最低 y 值的注释始终位于所有其他注释之后,即使相机位于 y 轴的负端也是如此。
enter image description here

关于python - Plotly 中文本标签的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62780324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com