为 Plotly 绘图函数创建包装函数
Create a wrapper function for Plotly plotting functions
我正在使用 Jupyter notebook,我正在尝试为常规的 Plotly Scatter3d()
函数创建一个包装函数,使用我自己的布局设置,以便我可以在每次需要时直接调用它绘制一些东西,然后保存屏幕 space。
但是,这是行不通的。屏幕上没有显示任何内容。有谁知道为什么?
我的代码:
def BSplot3dPlotly(xyz):
xyz = np.reshape(xyz, (int(xyz.size/3), 3))
trace1 = go.Scatter3d(
x=xyz[:,0],
y=xyz[:,1],
z=xyz[:,2],
mode = 'markers', # lines+markers',
#marker=Marker(color=Y, colorscale='Portland')
marker=dict(
size=12,
line=dict(
color='rgba(217, 217, 217, 0.14)',
width=0.5
),
opacity=0.8
)
)
data = go.Data([trace1]) #[trace1]
layout = go.Layout(
margin=dict(
l=0,
r=0,
b=0,
t=0
)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename=name)
这里的输入 xyz
只是一个包含一些点的 x,y,z 坐标的列表。
对于 matplotlib,您必须运行以下内容才能看到图表:
%matplotlib inline
试试看。
- 您正在定义一个函数
BSplot3dPlotly
但它没有 return 任何东西,这可能是您看不到任何东西的原因。
- 在
marker
字典中包含 line
没有任何作用。您需要将模式设置为 markers+line
s 以获取标记和线条,然后使用单独的 line
字典。
import numpy as np
import plotly.graph_objs as go
import plotly.plotly as py
import plotly.offline as offline
def scatter3d_wrapper(xyz):
trace = go.Scatter3d(
x=xyz[:,0],
y=xyz[:,1],
z=xyz[:,2],
mode = 'markers+lines',
marker=dict(
color='rgb(255,0,0)',
size=12
),
line=dict(
color='rgb(0, 0, 255)',
width=10
)
)
return trace
xyz = np.random.random((20, 3))
trace1 = scatter3d_wrapper(xyz)
data = go.Data([trace1])
fig = go.Figure(data=data)
offline.plot(fig, filename='wrapper.html')
我正在使用 Jupyter notebook,我正在尝试为常规的 Plotly Scatter3d()
函数创建一个包装函数,使用我自己的布局设置,以便我可以在每次需要时直接调用它绘制一些东西,然后保存屏幕 space。
但是,这是行不通的。屏幕上没有显示任何内容。有谁知道为什么?
我的代码:
def BSplot3dPlotly(xyz):
xyz = np.reshape(xyz, (int(xyz.size/3), 3))
trace1 = go.Scatter3d(
x=xyz[:,0],
y=xyz[:,1],
z=xyz[:,2],
mode = 'markers', # lines+markers',
#marker=Marker(color=Y, colorscale='Portland')
marker=dict(
size=12,
line=dict(
color='rgba(217, 217, 217, 0.14)',
width=0.5
),
opacity=0.8
)
)
data = go.Data([trace1]) #[trace1]
layout = go.Layout(
margin=dict(
l=0,
r=0,
b=0,
t=0
)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename=name)
这里的输入 xyz
只是一个包含一些点的 x,y,z 坐标的列表。
对于 matplotlib,您必须运行以下内容才能看到图表:
%matplotlib inline
试试看。
- 您正在定义一个函数
BSplot3dPlotly
但它没有 return 任何东西,这可能是您看不到任何东西的原因。 - 在
marker
字典中包含line
没有任何作用。您需要将模式设置为markers+line
s 以获取标记和线条,然后使用单独的line
字典。
import numpy as np
import plotly.graph_objs as go
import plotly.plotly as py
import plotly.offline as offline
def scatter3d_wrapper(xyz):
trace = go.Scatter3d(
x=xyz[:,0],
y=xyz[:,1],
z=xyz[:,2],
mode = 'markers+lines',
marker=dict(
color='rgb(255,0,0)',
size=12
),
line=dict(
color='rgb(0, 0, 255)',
width=10
)
)
return trace
xyz = np.random.random((20, 3))
trace1 = scatter3d_wrapper(xyz)
data = go.Data([trace1])
fig = go.Figure(data=data)
offline.plot(fig, filename='wrapper.html')