我目前有一大组色彩映射,我用其他语言使用,我想导入python以用于matplotlib。我能三列的ASCII文件转换为RGB排列,然后到颜色表像这样:永久注册matplotlib中的色彩地图
def from_ascii(filename, name):
palette = open(filename)
lines = palette.readlines()
carray = np.zeros([len(lines), 3])
for num, line in enumerate(lines):
carray[num, :] = [float(val) for val in line.strip().split()]
cmap = colors.ListedColormap(carray, name=name)
然后我就可以注册该颜色映射:
cm.register_cmap(name=name, cmap=cmap)
使:
In [4]: cm.get_cmap('my_cmap')
Out[4]: <matplotlib.colors.ListedColormap instance at 0x1b114c68>
问题是cm.get_cmap()
只能检索我的自定义色彩图,如果我在同一个程序中。只要我尝试从单独的脚本调用我的自定义色彩映射,cm.get_cmap()
将返回None。
我敢肯定,我误解的东西...
嗯,我想我本以为有永久性地登记的办法色彩映射,以便生成它的代码不再需要再次运行。该死,因为我正在做的事情让事情变得更加困难。感谢你的回答。 – Vorticity 2012-01-05 17:49:06