farklı yönlere işaret ederek, bunun üzerine üç dairenin, köken olarak ve 1 yarıçapında merkezli her biri ile matplotlib bir 3B grafiğini yapmaya çalışıyorum.Matplotlib'de bir 3B yama koleksiyonu nasıl oluşturulur? örneğin, 1 yarıçaplı bir küre göstermek için -
2D yılında bir daire yama koleksiyonu yapar ve eksenler ekleyin. 3D olarak, yamaları farklı yönlere yönlendirmelerine izin vermek için yamaları ortaya çıkarmakta zorlanıyorum. Bu program çalıştırıldığında
import matplotlib
import matplotlib.pyplot as P
import mpl_toolkits.mplot3d as M3
fig = P.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
circles = matplotlib.collections.PatchCollection(
[matplotlib.patches.Circle((0, 0), 1) for count in range(3)],
offsets=(0, 0))
M3.art3d.patch_collection_2d_to_3d(circles, zs=[0], zdir='z')
ax.add_collection(circles)
P.show()
olursa olsun arsa döndürmek nasıl, mavi, yani birlikte yamaların yüz rengini tüm çizim penceresini doldurur. Ben PatchCollection()
çağrısında facecolor='none'
belirlerseniz, boş Axes3D
gösterir.
şeyler denedim:
- Ben
CircleCollection
yerinePatchCollection
bir kullanımı durumunda yamalar hiç görünür. patch_collection_2d_to_3d()
çağrızs
parametre tek olduğu; I koymak beklenir yazs=0
(bir Z-koordinat üç yamalar için) veyazs=[0,0,0]
(ayrı her bir yama z-koordinatı), ancak her ikisi de bu bir hata atmak:ValueError: setting an array element with a sequence.
yönlendirilmesi için yamalar farklı, ben
zdir=['x', 'y', 'z']
gibi bir şey geçmek mümkün olması beklenebilir ancak sonuçlar bunu ya'z'
veya['z']
geçebilecekler mi farklı değil.- Ben de 2D 3D yama toplama dönüştürmek yerine
ax.add_collection3d(circles, zs=[0, 0, 0], zdir=['x', 'y', 'z'])
yapabilmek için umuyordum, ama bu da bir hata atar: Lilith'in cevabı mükemmel bir alternatif yaklaşımdırAttributeError: 'Patch3DCollection' object has no attribute 'set_sort_zpos'
@; benim yaklaşımımın neden işe yaramadığına dair beni aydınlatabilir mi? – ptomato