[Matplotlib-users] Creating a smooth surface in 3D

Bala subramanian bala.biophysics at gmail.com
Mon May 28 08:16:51 EDT 2018

Dear mpl friends,

My objective is to create a molecular surface using matplotlib. I used the
snippet pasted below to create a series of spheres (attached png), drawn
using the atom attributes (their positions and radius). From here, I would
like to create a smooth surface which can depict the shape of the molecule
surface (curves,cavities etc). Based on examples in net, I get a mixed
feeling that either triangulation or making 3D grids are some directions to
proceed. If anyone has some suggestions or better protocols for such task
with some example data, it would be of great help to me.

fig = plt.figure(figsize=(6,6),dpi=140)

ax1 = fig.add_subplot(111, projection='3d')

# Define spherical coordinates

u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]

S = np.cos(u)*np.sin(v)

C = np.sin(u)*np.sin(v)

T = np.cos(v)

for P,R in zip(positions,radii):


Thanks in advance,


C. Balasubramanian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20180528/9c35f5c1/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.png
Type: image/png
Size: 474060 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20180528/9c35f5c1/attachment-0001.png>

More information about the Matplotlib-users mailing list