【问题标题】:Plotly: How to add extra information to marker of 3D scatter plot?Plotly:如何向 3D 散点图的标记添加额外信息?
【发布时间】:2021-07-08 10:13:50
【问题描述】:

我想做的是将每个字符串信息添加到每个气球中,如下所示。但是没有在每个地块旁边显示它们,因为当地块很多时它看起来很乱。

我的数据框在下面,我将信息作为字符串添加到每一行。

import plotly.express as px
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.manifold import TSNE

digits = datasets.load_digits()

X_reduced = TSNE(n_components=3, random_state=0).fit_transform(digits.data)

myinfo = ['ID' + str(i+1) for i in range(X_reduced.shape[0])]
df = pd.DataFrame(data=X_reduced, columns=columns, dtype='float')

df['info'] = myinfo          ## <- This is what i want to show in a balloon.

print(df)

              a         b          c    info
0     18.150545 -1.938995   1.192057     ID1
1     -8.773806  2.475938 -10.885373     ID2
2      4.305762  5.132519  -7.347726     ID3
3      5.327038  7.438313   8.786077     ID4
4    -15.810744 -9.374986   0.310686     ID5
...         ...       ...        ...     ...
1792   1.192152 -0.850245  12.781646  ID1793
1793  14.183956 -3.544634  -1.009673  ID1794
1794  -0.907307  2.596647  -4.307703  ID1795
1795   1.608326  0.700724   9.267643  ID1796
1796   1.809730  5.428222  -1.771497  ID1797

我尝试将字符串信息分配为 px.scatter_3d() 的 text='info',如下代码所示。

fig = px.scatter_3d(df, x='a', y='b', z='c', color='a', size_max=6 , text='info', opacity=0.7)

fig.show()

有人知道如何摆脱情节旁边的这些信息吗? 提前谢谢你。

【问题讨论】:

标签: python pandas plotly


【解决方案1】:

使用您的设置,您所要做的就是运行:

fig.update_traces(mode = 'markers')

...或:

fig.for_each_trace(lambda t: t.update(mode = 'markers'))

这将删除与标记关联的字符串,但保留悬停标签中添加的信息:

这种方法可以让您按原样拨打px.scatter_3d(..., text='info')

另一种方法是直接使用custom_value 编辑悬停信息,如帖子Plotly 3D plot annotations 中所述

【讨论】:

    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多