Мне нужно нанести на график данные, которые находятся в Python (или в каком-то файле, который я прочитал из python), а не в файле VTK. Я хотел бы получить эквивалент этого простого сценария matplotlib, используя VTK с векторизованным входом (предпочтительно numpy массивами). Я хотел бы иметь возможность обновлять это непосредственно из приложения в отзывчивой манере (то есть шаблон, изменяющийся в ответ на некоторый параметр в пользовательском интерфейсе)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# make some interesting data
theta = np.linspace(-np.pi/2, np.pi/2, 181)
phi = np.arange(np.pi, -np.pi, -np.pi/180)[::-1]
r = np.outer(np.sin(2*phi), np.sin(2*theta))
# xyz it
x = r * np.outer(np.cos(phi), np.sin(theta))
y = r * np.outer(np.sin(phi), np.sin(theta))
z = r * np.outer(np.ones(np.size(phi)), np.cos(theta))
# plot the surface
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, color='b')
plt.show()
Я нашел множество примеров, показывающих, как вывести данные из структур VTK в Python, но мое требование наоборот. Я также нашел примеры того, как строить массивы VTK элемент за элементом, но это Python; Мне нужно, чтобы оно было векторизовано, поскольку я хочу, чтобы оно обновлялось быстро. Я также не смог выяснить, как перейти от 2D StructuredGrid к сферическому графику.