Python:
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
u, v = np.mgrid[-np.pi:np.pi:200j, -np.pi:np.pi:200j]
x=np.cos(u)*(np.cos(v)+3)
y=np.sin(u)*(np.cos(v)+3)
z=np.sin(v)-0.5
ax.plot_wireframe(x, y, z, color = 'red')
fig.set_figwidth(5)
fig.set_figheight(5)
plt.show()
выходит такое:

Нужно что-то похоже на это: