plotly px.scatter_3d 标记大小

Posted

技术标签:

【中文标题】plotly px.scatter_3d 标记大小【英文标题】:plotly px.scatter_3d marker size 【发布时间】:2021-12-23 22:24:44 【问题描述】:

我有一个数据框df:

              x         y         z  ... colours marker_size  marker_opacity
test1  0.118709  0.219099 -0.024387  ...     red         100             0.5
test2 -0.344873 -0.401508  0.169995  ...    blue         100             0.5
test3 -0.226923  0.021078  0.400358  ...     red         100             0.5
test4  0.085421  0.098442 -0.588749  ...  purple         100             0.5
test5  0.367666  0.062889  0.042783  ...   green         100             0.5

我正在尝试用这样的方式来绘制这个:

fig = px.scatter_3d(df, 
                    x='x', y='y', z = 'z', 
                    color='labels', 
                    hover_name = df.index, 
                    opacity = 0.5, 
                    size = 'marker_size')   
fig.write_html(file_name)

当我打开file_name时,一切都很好,但我的积分太大了。当我更改 df'marker_size' 列时,没有任何变化(我尝试了 0.1、1、10、100...)。

这是为什么?

我也试过了:

参数:

size = 1:

结果:

ValueError: Value of 'size' is not the name of a column in 'data_frame'. Expected one of ['x', 'y', 'z', 'labels', 'colours', 'marker_size', 'marker_opacity'] but received: 1

参数:

size = [1]*len(df):

结果: 使用'marker_size'df 列没有区别

【问题讨论】:

【参考方案1】:

如果您希望增加 所有 轨迹的标记大小,只需使用:

fig.update_traces(marker_size = 12)

详情:

px.scatter_3dsize 属性不能让您直接指定标记的大小。而是让您在散点图中添加第四个维度,表示另一个变量的不同大小。

size: str or int or Series or array-like
    Either a name of a column in `data_frame`, or a pandas Series or
    array_like object. Values from this column or array_like are used to
    assign mark sizes.

将值从1 更改为10100 的原因是您似乎一直在同时更改所有 df['marker_size'] 中的值:

为了使这样的分配生效,您需要在df['marker_size'] 中有一个变量,而不是一个常量。你可以通过这个 sn-p 仔细看看这些东西是如何工作的:

import plotly.express as px
df = px.data.iris()

fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
              color='species',
              size = 'petal_length'
                   )

fig.show()

在这里您可以看到size 属性按预期工作,因为您的标记将具有不同的大小,如df['petal_length] 所定义:

【讨论】:

啊,太好了,非常感谢!

以上是关于plotly px.scatter_3d 标记大小的主要内容,如果未能解决你的问题,请参考以下文章

R语言plotly可视化:使用TSNE算法将数据降维到三维并使用plotly可视化降维后的数据(project data into 3D with t-SNE and px.scatter_3d)

如何在 Plotly 3D 散点图中设置点标记的样式/格式?

Plotly:如何自定义 3D 散点图的符号?

在 Plotly Express 散点图中将所有标记设置为相同的固定大小

R语言plotly可视化:使用UMAP算法将数据降维到二维并使用plotly可视化降维后的数据(project data into 2D with umap and px.scatter)

R语言plotly可视化:使用TSNE算法将数据降维到二维并使用plotly可视化降维后的数据(project data into 2D with t-SNE and px.scatter)