Контурный график на поверхности трехмерного цилиндра

Из-за ваша большая помощь Теперь я могу построить трехмерный цилиндр с отверстием внутри :) Это мой код:

import numpy as np
import matplotlib as mlp
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d


inner_radius = 100
outer_radius = 300
height=50

# input xy coordinates
input_xy = np.array([[ri,0],[ra,0],[ra,h],[ri,h],[ri,0]])
# radial component is x values of input
r = xy[:,0]
# angular component is one revolution of 30 steps
phi = np.linspace(0, 2*np.pi, 30)
# create grid
R,Phi = np.meshgrid(r,phi)
# transform to cartesian coordinates
X = R*np.cos(Phi)
Y = R*np.sin(Phi)
# Z values are y values, repeated 30 times
Z = np.tile(xy[:,1],len(Y)).reshape(Y.shape)


fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
#ax2 = fig.add_axes([0.05,0.7,0.15,.2])

#ax2.plot(xy[:,0],xy[:,1], color="k")
ax.set_zlim(0,200)
ax.plot_surface(X, Y, Z, alpha=0.5, color='lightgrey', rstride=1, cstride=1)



plt.show()

Следующим очень важным шагом для меня будет нанесение на верхнюю поверхность (или, возможно, в 3D, если это возможно) графика счетчика. Это должно выглядеть так (можно и просто в 2d): Контурный график

Применительно к моему графику это будет выглядеть примерно так: Контурный график на моем примере кода

Я нашел что-то похожее на мою проблему 1#comment89590056_51306259">Как строить контурные линии на поверхностном графике, но, к сожалению, я не понимаю код. С наилучшими пожеланиями !

Обновление: вот черновик того, как я себе это представляю: Target

Я надеюсь, что кто-то знает, как справиться с этой проблемой.


person roflcopter122    schedule 05.07.2018    source источник
comment
ax.voxels создаст воксели; поэтому, если они вам не нужны, не используйте их. Вместо этого вы можете искать что-то вроде этот вопрос?   -  person ImportanceOfBeingErnest    schedule 05.07.2018
comment
Большое спасибо, это мне очень помогло. Теперь у меня есть 3D-график цилиндра с отверстием. У меня есть еще один вопрос. Могу ли я задать его здесь, в этом посте, или мне следует задать новый вопрос? С наилучшими пожеланиями   -  person roflcopter122    schedule 05.07.2018