2016-10-31 2 views
0

В Matplotlib у меня есть:Как нарисовать многоугольник с темными границами, но прозрачными гранями?

cmap = plt.cm.RdYlBu_r 
colors = cmap(np.linspace(0,1, len(patches))) 
collection = PatchCollection(patches, alpha=.3, 
          facecolor=colors, linestyle='solid') 

, и это дает мне то, что я хочу, за исключением того, что граница наследует атрибут «альфа». Как рисовать многоугольник с темными границами, но прозрачными гранями?

ответ

0

как перепускной решение, которое вы могли бы сохранить пункты скомпоновать полигон и построить линию, соединяющую точки, как в коде ниже:

import matplotlib 
import numpy,matplotlib.pyplot as plt 
from matplotlib.patches import Polygon 
from matplotlib.collections import PatchCollection 
fig = plt.figure() 
axe = fig.add_subplot(111) 
polyval = numpy.random.rand(4,2) # Create the sequence of 4 2D points 
patches = [Polygon(polyval,True)] 
p = PatchCollection(patches,cmap=matplotlib.cm.jet,alpha=0.3) 
p.set_array(100.*numpy.random.rand(1)) # Set a random color on jet map 
axe.add_collection(p) 
fig.colorbar(p) 
fig.show() 
for patch in patches: 
    axe.add_patch(Polygon(patch.get_xy(),closed=True,ec='k',lw=3,fill=False)) #draw the contours 
fig.canvas.draw() 
Смежные вопросы