gpt4 book ai didi

python - 对称色图 matplotlib

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:46 25 4
gpt4 key购买 nike

我有一系列在 -180 到 180 之间变化的值,我有一个关于零对称的颜色图,即 -180 的颜色与 180 值的颜色相同,依此类推。这是我第一次使用 matplotlib,我只是没有找到使它围绕零对称的方法,负片的颜色总是与正片不同。非常感谢。

最佳答案

感谢来自:https://stackoverflow.com/a/31052741 的贡献

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors


def symmetrical_colormap(cmap_settings, new_name = None ):
''' This function take a colormap and create a new one, as the concatenation of itself by a symmetrical fold.
'''
# get the colormap
cmap = plt.cm.get_cmap(*cmap_settings)
if not new_name:
new_name = "sym_"+cmap_settings[0] # ex: 'sym_Blues'

# this defined the roughness of the colormap, 128 fine
n= 128

# get the list of color from colormap
colors_r = cmap(np.linspace(0, 1, n)) # take the standard colormap # 'right-part'
colors_l = colors_r[::-1] # take the first list of color and flip the order # "left-part"

# combine them and build a new colormap
colors = np.vstack((colors_l, colors_r))
mymap = mcolors.LinearSegmentedColormap.from_list(new_name, colors)

return mymap

测试它给你:

# --- Quick test -------------------------
cmap_settings = ('Blues', None) # provide int instead of None to "discretize/bin" the colormap
mymap = symmetrical_colormap(cmap_settings= cmap_settings, new_name =None )

data = np.random.rand(10,10) * 2 - 1
plt.pcolor(data, cmap=mymap)
plt.colorbar()
plt.show()

Result_figure

关于python - 对称色图 matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com