plotly px.scatter_3d 标记大小
plotly px.scatter_3d marker size
我有一个数据框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
我正在尝试像这样用 plotly 来绘制它:
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
列
没有区别
如果您希望增加 所有 轨迹的标记大小,只需使用:
fig.update_traces(marker_size = 12)
详情:
px.scatter_3d
的 size
属性无法让您直接 指定标记的大小。而是让您在散点图中添加第四个维度,表示另一个变量的不同大小。
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
更改为10
或100
的原因是您似乎一直在更改所有值同时在 df['marker_size']
中:
为了使这样的赋值生效,您需要在 [=18 中有一个 变量 而不是 常量 =].你可以通过这个片段来仔细看看这些东西是如何工作的:
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]
:
定义的不同大小
我有一个数据框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
我正在尝试像这样用 plotly 来绘制它:
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
列
如果您希望增加 所有 轨迹的标记大小,只需使用:
fig.update_traces(marker_size = 12)
详情:
px.scatter_3d
的 size
属性无法让您直接 指定标记的大小。而是让您在散点图中添加第四个维度,表示另一个变量的不同大小。
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
更改为10
或100
的原因是您似乎一直在更改所有值同时在 df['marker_size']
中:
为了使这样的赋值生效,您需要在 [=18 中有一个 变量 而不是 常量 =].你可以通过这个片段来仔细看看这些东西是如何工作的:
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]
: