plotly可以绘制3d空间的散点、线段或者表面。
代码并不复杂,只是注意go.Surface()的参数中只用了z,它是包含了y个row的list,每个row又是包含了x个col的值,每个值就是z的数值,共有x*y个值,示意如[[z,z,z,....共x个],[z,z,z,....共x个],[z,z,z,....共x个]...共y个]。这看起来就像excel表格,列是x值(从0起),行是y值(从0起),每单元格是z值。
#生成3d图f(x,y)曲面
import plotly.offline as py
import plotly.graph_objs as go
import random
import math
py.init_notebook_mode()
#原函数
def func(x, y):
res = math.pow(x, 2) + math.pow(y, 2) + x * y * 0.5
return res
#------------------------------------数据
surf = go.Surface(
z=[[func(x - 100, y - 100) for x in range(0, 200, 40)]
for y in range(0, 400, 40)],
opacity=1,
colorscale='Hot')
datas = [surf]
print(surf['z'])
#----------------------------------------绘图
layout = go.Layout(
autosize=False,
width=1200,
height=1200,
)
py.iplot(datas)
colorscale的可选值有:
Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis.
参考链接
每个人的智能新时代
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~
END
网友评论