Plotly - 如何设置特定线的宽度?

Kao*_*aow 9 python plotly plotly-python

我正在尝试使用绘图库绘制图表,并且我想设置每条线的特定宽度。

这是我的代码。


x_link = [125, 257, None, 125, 787, None]
y_link = [383, 588, None, 383, 212, None]
z_link = [65, 85, None, 65, 526, None]

link_size = [3,6]

trace1= go.Scatter3d(
                x = x_link, 
                y = y_link,
                z = z_link,
                line=dict(
                    color='#0061ff',
                    width=link_size
                )
)
Run Code Online (Sandbox Code Playgroud)

但它会引发这个错误。

scatter3d.line 的“width”属性收到的“builtins.list”类型的值无效收到的值:[3, 6]

'width' 属性是一个数字,可以指定为: - 区间 [0, inf] 内的 int 或 float

那么,有没有办法设置每行的具体宽度呢?

谢谢。

ves*_*and 12

您必须为数据集添加单独的跟踪line=dict(width)才能执行此操作,因为只需要一个参数而不是某种数组。对于较大的数据集来说,这可能是一项繁重的工作。但是,如果将数据集从列表更改为列表列表,则可以考虑更多数据点。因此,通过一些数据操作,您可以将其转变为:

x_link = [125, 257, None, 125, 787, None]
y_link = [383, 588, None, 383, 212, None]
z_link = [65, 85, None, 65, 526, None]
Run Code Online (Sandbox Code Playgroud)

进入这个:

x_link = [[125, 257, None], [125, 787, None]]
y_link = [[383, 588, None], [383, 212, None]]
z_link = [[65, 85, None], [65, 526, None]]
Run Code Online (Sandbox Code Playgroud)

并运行此代码:

import plotly.graph_objects as go
from plotly.offline import init_notebook_mode, iplot

x_link = [[125, 257, None], [125, 787, None]]
y_link = [[383, 588, None], [383, 212, None]]
z_link = [[65, 85, None], [65, 526, None]]

# figure formatting
colors=['red', 'green']
link_size = [2,12]

# make multiple traces
traces={}
for i in range(0, len(x_link)):
    traces['trace_' + str(i)]=go.Scatter3d(x = x_link[i], 
                                           y = y_link[i],
                                           z = z_link[i],
                                           line=dict(
                                                color=colors[i],
                                                width=link_size[i]))
data=list(traces.values())

# build and plot figure
fig=go.Figure(data)
fig.show()
Run Code Online (Sandbox Code Playgroud)

得到这个情节:

在此输入图像描述