✊🏿 Black Lives Matter. Please consider donating to Black Girls Code today.
🧬 Learn how to build RNA-Seq data apps with Python & Dash. Register for the May 20 Webinar!

How to create a surface from single 3d coordinate(like scatter 3d)

i have a surface descrived by a matrix 100x3( 3d surface). How i can create a surface from this array
i put this code but dont work:

import plotly.graph_objects as go
import numpy as np

# 1 --------------------------------------
fck = 35 ; fctm  = 0.3*abs(fck) ; fyk = 450.0 ; c = 30.0
s1 = np.asarray([[1,1,1]]) ; #print(s1.shape)
for x1 in range(1,500,50) : 
    for x2 in range(1,500,50) :
        if 0.26*(fctm/fyk)*x2*(x1-c) > 0 :
            s = np.array([[x1,x2,0.26*(fctm/fyk)*x2*(x1-c)]]) ; #print(s,s.shape)
            s1 = np.append(s1, s, axis=0)
s1 = np.delete(s1, 0, 0) ; s1 = 

#  2 --------------------------------------
s2 = np.asarray([[1,1,1]]) ; #print(s1.shape)
for x1 in range(1,500,50) : 
    for x2 in range(1,500,50) :
        if 0.0013*(x2*(x1-c)) > 0 :
            s = np.array([[x1,x2,0.0013*(x2*(x1-c))]]) ; #print(s,s.shape)
            s2 = np.append(s2, s, axis=0)
s2 = np.delete(s2, 0, 0)

#  7 -------------------------------------- 
s7 = np.asarray([[1,1,1]]) ; #print(s1.shape)
for x1 in range(0,500,50) : 
    for x2 in range(0,500,50) :
        s = np.array([[x1,x1,1.4*x1*x2/fyk]]) ; #print(s,s.shape)
        s7 = np.append(s7, s, axis=0)
s7 = np.delete(s7, 0, 0)


fig = go.Figure(data=[
    go.Surface(x=s1[:,0],y=s1[:,1],z=s1[:,2]),
    go.Surface(x=s2[:,0],y=s2[:,1],z=s2[:,2], showscale=False, opacity=0.9),
    go.Surface(x=s7[:,0],y=s7[:,1],z=s7[:,2], showscale=False, opacity=0.9)

])

fig.show()