【问题标题】:How to specify marker size as diameter in input space with plotly Scatter3d?如何使用 plotly Scatter3d 将标记大小指定为输入空间中的直径?
【发布时间】:2019-12-23 18:15:12
【问题描述】:

在使用 go.Scatter3d 进行实验时,我注意到了选项标记 sizemode="diameter"。似乎此选项与输入空间中标记的直径无关。

是否可以在输入空间中使用自定义直径调整标记的大小?

例如我想要标记,每个标记的输入空间直径为 5:

import plotly.express as px
import plotly.graph_objects as go

import numpy as np

x =y=z = np.arange(1,4)

fig = go.Figure()

fig.add_trace(
    go.Scatter3d(
        mode='markers',
        x=x,
        y=y,
        z=z,
        marker=dict(
            color=px.colors.qualitative.D3,
            size=5,
            sizemode='diameter'
        )
    )
)
axis_range = [-5,10]
fig.update_layout(scene = dict(
        xaxis = dict(range=axis_range,),
        yaxis = dict(range=axis_range,),
        zaxis = dict(range=axis_range,)
))

fig.show()

【问题讨论】:

    标签: python plotly visualization plotly-python scatter3d


    【解决方案1】:

    不'真正理解你的问题,你想达到什么,但文档:https://plot.ly/python/reference/#scatter3d 说 sizemode 只有在 marker.size 设置为数字数组时才会生效。

    所以,根据你的例子:

    import plotly.express as px
    import plotly.graph_objects as go
    
    import numpy as np
    
    x =y=z = np.arange(1,4)
    
    fig = go.Figure()
    
    fig.add_trace(
        go.Scatter3d(
            mode='markers',
            x=x,
            y=y,
            z=z,
            marker=dict(
                color=px.colors.qualitative.D3,
                size=[5, 10, 30],
                sizemode='diameter'
            )
        )
    )
    axis_range = [-5,10]
    fig.update_layout(scene = dict(
            xaxis = dict(range=axis_range,),
            yaxis = dict(range=axis_range,),
            zaxis = dict(range=axis_range,)
    ))
    
    fig.show()
    

    【讨论】:

    • 谢谢,我真的错过了这个要求。为了澄清我的问题:我试图在输入尺寸的比例上定义标记的大小,但我猜这些标记不是为此而设计的。
    猜你喜欢
    • 2021-11-20
    • 2021-09-03
    • 2021-12-23
    • 2020-10-14
    • 2020-03-01
    • 2020-07-23
    • 2021-04-18
    • 2018-07-30
    • 1970-01-01
    相关资源
    最近更新 更多