Рисование сферы в python - PullRequest
0 голосов
/ 29 января 2020

Как я могу нарисовать две и более сферы с помощью python? Например, я знаю координаты центра каждой сферы и хочу нарисовать их в одном графике c.

Мой код теперь:

import matplotlib.pyplot as plt
import numpy as np
import pylab
from mpl_toolkits.mplot3d import Axes3D

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


fig = plt.figure(1)    
ax = fig.add_subplot(111, projection='3d')

u = np.linspace(0, 2 * np.pi, 10)
v = np.linspace(0, np.pi, 10)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones(np.size(u)), np.cos(v))

ax.plot_surface(x+4, y, z+10, linewidth=0.0)
ax.plot_surface(x+4, y, z, linewidth=0.0)

plt.show()

и у меня есть результат: Image of two flattened spheres

но это не похоже на сферы

1 Ответ

0 голосов
/ 29 января 2020

Ваша проблема не в том, что сферы не сферические, ваша проблема в том, что оси не одинаково масштабированы. Лучший обходной путь кажется (взят из здесь ):

ax.auto_scale_xyz((0,10), (-5,5), (0,10))

В результате:

Image of two spheres

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...