通过预定义列表动态创建变量

时间:2016-01-21 09:15:38

标签: python list variables numpy matplotlib

这是我的想法,我遇到了一些我无法应付的问题。

我的尝试

通过预定义的color_list创建cmap_1,cmap_2,cmap_3,....

我的代码

color_list = ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99',\
              '#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#ffff99']    

## generate the suffix (1,2,3,4...)
letter = np.arange(1,len(site_s)+1,1)    
## Loop to generate cmap_i = colors.ListedColormap(["w",color_list[i]]) 
for i in range(0,len(letter),1):
    eval("cmap_%s" % (letter[i])) = colors.ListedColormap(["w",color_list[i]])   

但似乎eval(xxx)不起作用。我认为只有当cmap_1,... cmap_n已经存在时才能使用eval函数。

所以,这是我的一个问题

  

如何创建新变量 cmap_i

添加1

  1. 创建这些变量之后,我将在一个图中使用cmap_i绘制2-d pcolormesh和11个2-d np-array。
  2. 例如

    • value 是一个3-d numpy数组,形状为(11,50,50)。 '11'是2-d阵列的数量。
    • value 只有两个数字0&所以,我想为每个2-d numpy数组创建不同的两个colormap对应。然后,每个2-d阵列的“1”具有不同的颜色。这就是我要做的事情
    代码的:
    for i in range(0,value.shape[0],1):
        plt.pcolormesh(value[i,:,:],cmap = cmap_i) ##  cmap = cmap_i was the fake code.
    
    1. 我已经读过这个问题(“我如何在Python中做变量变量?”),我仍然感到困惑。
    2. 添加2
      这就是我现在要做的事情

      color_list =['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99',\
                   '#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#ffff99']
      cmap1 =cmap2=cmap3=cmap4=cmap5=cmap6=cmap7=\
      cmap8=cmap9=cmap10=cmap11 = plt.cm.jet
      CMAP = [cmap1 , cmap2, cmap3, cmap4, cmap5, cmap6, cmap7, 
              cmap8, cmap9, cmap10, cmap11 ]
      for i in range(0,len(color_list),1):
          CMAP[i]= colors.ListedColormap([color_list[i]])
      

0 个答案:

没有答案