Кроме того, Mayavi на самом деле предоставляет что-то вроде «художника сферы», который называется

ужно нарисовать много сфер, маленьких и больших, на одной картине. Следующий код работает, но выполняется очень долго.

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

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

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

for k in range(200):
    c = numpy.random.rand(3)
    r = numpy.random.rand(1)
    ax.plot_surface(
        r*x + c[0], r*y + c[1], r*z + c[2],
        color='#1f77b4',
        alpha=0.5,
        linewidth=0
        )

plt.show()

Я ищу более эффективное решение. Возможно, в matplotlib есть родной сферный художник, которого я не нашел?

Ответы на вопрос(1)

Ваш ответ на вопрос