2016-04-29 4 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') 

для построения Heatmap. (с параметром «spectral»).

Большое спасибо!

ответ

0

Что-то вроде этого?

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

EDIT: Даже лучше:

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

Да! Так здорово, спасибо! – Stryx