2014-11-14 4 views
12

У меня есть две матрицы Tri и V для граней (Nx3) и вершин (Mx3) из полигонов, которые я хочу построить. Есть ли способ matplotlib (или любой другой) для этого? Нечто похожее на команды Matlabналожение заполненных многоугольников на python

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

Вы, вероятно, хотите, чтобы преобразовать полигоны в треугольники, а затем использовать [ 'plot_tri_surf'] (http://matplotlib.org/mpl_toolkits/mplot3d/ tutorial.html # три поверхностной участки). – will

ответ

20

Я не совсем уверен, что делает MATLAB, но вы можете нарисовать многоугольник с помощью matplotlib.patches.Polygon. Адаптировано из example в документации:

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

Смежные вопросы