2016-04-29 66 views
0

大家好我要定义一个函数来绘制地图,这里是一个简单的例子:如何让用户选择颜色表?

def PlotMap(df, fig = plt.figure(), size = 111, loc_ix = 0): 
    ax = fig.add_subplot(size + loc_ix) 
    color = matplotlib.cm.spectral(np.linspace(0,1,100)) 
    for s in df.index: 
#this is for plotting process 
#extract polygon from data frame df 
     poly = Polygon(df.polygon[s]) 
#find its color based on the partition 
     c = color[df.partition[s]][0:3] 
     ax.add_patch(PolygonPatch(poly, fc = c, ec = 'k', alpha = 0.7, zorder = 2)) 
    ax.axis('scaled') 

这里,您看到的颜色是固定的“谱”,我想知道如何修改这个代码,所以用户可以选择他们喜欢的颜色表?理想的情况是添加额外的输入参数(我们称之为cmap),然后我们可以简单地调用

PlotMap(df, cmap = 'hot') 

来绘制热图。 ('频谱'是默认设置。)

非常感谢!

回答

0

像这样的东西?

color_map_name = "spectral" 
color_func = getattr(matplotlib.cm, color_map_name) 
color = color_func(np.linspace(0,1,100)) 

编辑:更妙的是:

color_func = matplotlib.cm.get_cmap(color_map_name) 
+0

是的!太酷了,谢谢! – Stryx