Skip to content Skip to sidebar Skip to footer

Plot 3d Mesh Using Mplot3d

starting from a text file containing the points coordinates of a 3D surface, its deformed due to a pressure applied on it and the values of the pressure applied according to the fo

Solution 1:

From @ImportanceOfBeingErnest comentary, using plot_trisurf:

[...]
with open(f_in,"r") as f0:
    for ind, line in enumerate(f0):
        if ind > 2:
            item = line.strip()
            if item:
                item = item.split()
                #Node_label = item[0]
                x_in.append(item[1])
                y_in.append(item[2])
                z_in.append(item[3])
                x_def.append(item[4])
                y_def.append(item[5])
                z_def.append(item[6])
                cpress.append(item[7])

# type is important to convert strings to numbers:
x_in = np.asarray(x_in, dtype=np.float64)
y_in = np.asarray(y_in, dtype=np.float64)
z_in = np.asarray(z_in, dtype=np.float64)

fig = plt.figure()
ax = fig.gca(projection='3d')

points = ax.scatter(x_in, y_in, z_in, cmap=cm.coolwarm, antialiased=False)

surface = ax.plot_trisurf(x_in, y_in, z_in, cmap=cm.coolwarm, antialiased=False)

fig.tight_layout()
fig.show()

enter image description here

Post a Comment for "Plot 3d Mesh Using Mplot3d"