## Issue

I am trying to generate a 3d ellipsoid in matplotlib using the method `matplotlib.pyplot.add_subplot(211,projection='3d')`

.

Firstly, I generate the upper side of the ellipsoid using this code:

```
import matplotlib.pyplot as plt
fig1=plt.figure(figsize=(20,20))
ax=fig1.add_subplot(211,projection='3d')
import numpy as np
Xval=np.linspace(-5,5,50)
Yval=np.linspace(-5,5,50)
X,Y=np.meshgrid(Xval,Yval)
def height(x,y):
return 100-(x**2/4+y**2/9)
Z=np.sqrt(height(X,Y))
ax.plot_wireframe(X,Y,Z)
```

Secondly, when I tried to generate the lower side of the ellipsoid, I could not show the two pictures together to form a complete ellipsoid and it messes up. The Z vector is as follows for the lower side.

```
Z=-np.sqrt(height(X,Y))
```

I would appreciate any tip.

I know that this is possible in 2d figures.

## Solution

Your ellipsoid is way too large for the data ranges you define, that’s why you get two "planes" when you plot the two sides together. With

```
Xval=np.linspace(-30,30,300)
Yval=np.linspace(-30,30,300)
...
ax.plot_wireframe(X,Y,np.sqrt(height(X,Y)))
ax.plot_wireframe(X,Y,-np.sqrt(height(X,Y)))
```

it shows as

Note that this still lacks the connections between the halves. That’s because you would need to include the exact x, y coordinates which give z=0.

Answered By – mcsoini

Answer Checked By – Katrina (BugsFixing Volunteer)