2014-11-14 15 views
12

Ich habe zwei Matrizen Tri und V für Flächen (Nx3) und Vertices (Mx3) von Polygonen, die ich plotten möchte. Gibt es irgendeine Matplotlib (oder alternative) Möglichkeit, das zu tun? Etwas ähnlich wie Matlab BefehlGefüllte Polygone in Python plotten

patch('faces',Tri,'vertices',V,'facecolor', 
     'flat','edgecolor','none','facealpha',1) 
+0

Sie wahrscheinlich die Polygone in Dreiecke konvertieren möchten, und dann mit [ 'plot_tri_surf'] (http://matplotlib.org/mpl_toolkits/mplot3d/ tutorial.html # Drei-Flächen-Plots). – will

Antwort

20

Ich bin mir nicht ganz sicher, was Matlab tut, aber Sie können ein Polygon mit matplotlib.patches.Polygon ziehen. Angepasst von einer example in der Dokumentation:

import numpy as np 

import matplotlib.pyplot as plt 
import matplotlib 
from matplotlib.patches import Polygon 
from matplotlib.collections import PatchCollection 

fig, ax = plt.subplots() 
patches = [] 
num_polygons = 5 
num_sides = 5 

for i in range(num_polygons): 
    polygon = Polygon(np.random.rand(num_sides ,2), True) 
    patches.append(polygon) 

p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4) 

colors = 100*np.random.rand(len(patches)) 
p.set_array(np.array(colors)) 

ax.add_collection(p) 

plt.show() 

enter image description here