Skip to main content
 首页 » 编程设计

python之Plotly之如何将宽度设置为特定行

2025年05月04日20mayingbao

我正在尝试使用 plotly 库和 我想设置每行的特定宽度。

这是我的代码。

 
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 
                ) 
) 

但它引发了这个错误。

Invalid value of type 'builtins.list' received for the 'width' property of scatter3d.line Received value: [3, 6]

The 'width' property is a number and may be specified as: - An int or float in the interval [0, inf]

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

谢谢。

请您参考如下方法:

您将必须为您的数据集添加单独的跟踪才能执行此操作,因为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] 

进入这个:

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

并运行这段代码:

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() 

得到这个图: