Matplotlib - Tracer un plan et les points en 3D simultanément
Je m en essayant de tracer simultanément un avion et quelques points en 3D avec Matplotlib.
Je n'ai pas d'erreurs juste le point n'apparaît pas.
Je peux parcelle, à différents moments, certains points et d'avions, mais jamais au même moment.
La partie du code ressemble à ceci :
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
point = np.array([1, 2, 3])
normal = np.array([1, 1, 2])
point2 = np.array([10, 50, 50])
# a plane is a*x+b*y+c*z+d=0
# [a,b,c] is the normal. Thus, we have to calculate
# d and we're set
d = -point.dot(normal)
# create x,y
xx, yy = np.meshgrid(range(10), range(10))
# calculate corresponding z
z = (-normal[0] * xx - normal[1] * yy - d) * 1. /normal[2]
# plot the surface
plt3d = plt.figure().gca(projection='3d')
plt3d.plot_surface(xx, yy, z, alpha=0.2)
#and i would like to plot this point :
ax.scatter(point2[0] , point2[1] , point2[2], color='green')
plt.show()
- Connexes : stackoverflow.com/questions/13464304/...
- comment est-ce lié? La question que votre lien est sur
matlab
, c'est surmatplotlib
- Hey @tom, il a une explication sur le calcul de la formule, celle qui est appelée "Calculer correspondant z' dans la question d'origine
- Ok bien sûr, même si ce n'est pas vraiment ce que cette question et les réponses sont sur le
Vous devez vous connecter pour publier un commentaire.
Vous devrez indiquer les axes que vous voulez de nouvelles parcelles à ajouter au courant des parcelles sur les axes plutôt que de les écraser. Pour ce faire, vous aurez besoin d'utiliser
axes.hold(True)
Mise à JOUR
Comme @tcaswell souligné dans les commentaires, ils envisagent l'arrêt de l'appui pour
hold
. En conséquence, une meilleure approche serait d'utiliser les axes directement à ajouter plus de parcelles que dans @tom réponse.hold
au jour le jour? Nous avons parlé d'autodérision et je voudrais parler à quelqu'un qui l'utilise....hold==True
. Si vous trouvez un cas d'utilisation où vous ne peut pas, il suffit de retirer veuillez faire une question sur GHJuste pour ajouter à @suever réponse, vous il n'ya aucune raison pourquoi vous ne pouvez pas créer de la
Axes
et puis l'intrigue à la fois la surface et le nuage de points sur elle. Ensuite, il n'y a pas besoin d'utiliserax.hold()
: