Python 将轮廓颜色的给定值转换为rgb代码

Python 将轮廓颜色的给定值转换为rgb代码,python,matplotlib,colormap,contourf,Python,Matplotlib,Colormap,Contourf,我用viridis颜色方案创建了一个二维轮廓图,边界为vmin=0,vmax=4。代码如下: ax.contourf(xi/d,yi/d,data/d,12,vmin=0,vmax=4,cmap=vs.viridis(),aspect='equal') 现在我从另一个计算中得到了一个数据点,它位于一个特定的位置,数据=3.5,我想用一个彩色的圆片将它叠加到轮廓上 那么,如何将rgb颜色信息添加到contourf的范围和使用的配色方案内的圆圈中呢 感谢您的帮助您可以使用matplotlib.co

我用viridis颜色方案创建了一个二维轮廓图,边界为vmin=0,vmax=4。代码如下:

ax.contourf(xi/d,yi/d,data/d,12,vmin=0,vmax=4,cmap=vs.viridis(),aspect='equal')
现在我从另一个计算中得到了一个数据点,它位于一个特定的位置,数据=3.5,我想用一个彩色的圆片将它叠加到轮廓上

那么,如何将rgb颜色信息添加到contourf的范围和使用的配色方案内的圆圈中呢


感谢您的帮助

您可以使用
matplotlib.colors.Normalize
实例来执行此操作:

import matplotlib.pyplot as plt
import matplotlib.colors as colors

norm = colors.Normalize(vmin=0,vmax=4)
cmap = plt.cm.viridis

mycolor = cmap(norm(3.5))
print mycolor
# (0.67848900000000001, 0.86374200000000001, 0.189503, 1.0)
注意,如果颜色映射是从其他文件导入的,则需要先在
matplotlib
中注册,然后才能生效。例如:

import myviridisfile as vs
plt.register_cmap(name='viridis', cmap=vs.viridis)

谢谢,它正在工作,不幸的是,不适用于viridis colormap。错误消息是:viridis()不接受任何参数(1给定),但我喜欢此ColorMap如果您未使用
matplotlib 1.5.0
,并且已从另一个文件导入
viridis
,则可能需要先注册它:
plt.register_cmap(name='viridis',cmap=vs.viridis)
也许我的问题应该是如何导入
viridis
?Dam很快,是的,我从另一个文件导入了它,最后一步就是解决方案。谢谢谢谢最后一个问题,我如何用这个结果给一个分散点上色,试图把它转换成十六进制,但没有成功