Hi Leute,
ich versuch mich gerade an 3dplots und habe vor dreieckige, viereckige Flächen und Linien im 3D Raum zu zeichnen. Zu den Flächen und Linien hab ich jeweils nur die Punkte...
Ich hab mir hier zwei Beispiele angeschaut aus denen ich nicht so recht schlau werde:
http://matplotlib.sourceforge.net/examp ... _demo.html und
http://matplotlib.sourceforge.net/examp ... _demo.html
Ich hab mir die Testdaten aus Beispiel 1 mal angeschaut und muss zugeben, ich verstehe sie nicht, bzw hab ich keine Idee wie ich diese Daten für meine Koordinaten erstellen könnte.
Gibt es da in numpy Funktionen die mir die richtigen Arrays konstruieren würden? Ich bin leider nicht fündig geworden.
Hoffe jemand kann mir helfen, vielen Dank.
3D Flächen und Linien mit numpy und matplotlib
Hm, ich denke ich habe etwas gefunden, was mir helfen könnte, aber ich verstehe nicht wie man es benutzen muss...
class mpl_toolkits.mplot3d.art3d.Poly3DCollection(verts, *args, **kwargs)
http://matplotlib.sourceforge.net/mpl_t ... d/api.html
Hier soll man angeblich 3d verts angeben können aber das funktioniert irgendwie nicht wie ich mir das vorstelle
Ich muss zugeben dass ich teilweise nicht so recht verstehe was ich hier mache... vielleicht ist dadurch auch alles falsch Aber vielleicht hat jemand hier eine Idee was mir helfen kann.
class mpl_toolkits.mplot3d.art3d.Poly3DCollection(verts, *args, **kwargs)
http://matplotlib.sourceforge.net/mpl_t ... d/api.html
Hier soll man angeblich 3d verts angeben können aber das funktioniert irgendwie nicht wie ich mir das vorstelle
Code: Alles auswählen
from mpl_toolkits.mplot3d import axes3d
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import matplotlib.pyplot as plt
fig = plt.figure()
ax = axes3d.Axes3D(fig)
poly = Poly3DCollection((zip(1,2,3),zip(2,3,5),zip(3,4,5)))
ax.add_collection3d(poly)
plt.show()
Ok, ich habe es hinbekommen nach vielem suchen und probieren...
Code: Alles auswählen
from mpl_toolkits.mplot3d import axes3d
from matplotlib.collections import PolyCollection
from mpl_toolkits.mplot3d.art3d import Poly3DCollection as p3dc
import matplotlib.pyplot as plt
import numpy as np
a = (1,2,4)
b = (2,3,3)
c = (3,2,3)
fig = plt.figure()
ax = axes3d.Axes3D(fig)
poly = p3dc([[a,b,c]])
ax.add_collection3d(poly)
ax.set_xlim3d(0,10)
ax.set_ylim3d(0,10)
ax.set_zlim3d(0,10)
plt.show()