将 contourf 颜色的给定值转换为 rgb 代码
Convert given value of contourf color to rgb code
我创建了一个 2D contourf 图,在边界 vmin=0,vmax=4 中使用 viridis 配色方案。这是代码:
ax.contourf(xi/d,yi/d,data/d,12,vmin=0,vmax=4,cmap=vs.viridis(),aspect='equal')
现在我从另一个计算中得到了一个特定位置的数据点,data=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)
我创建了一个 2D contourf 图,在边界 vmin=0,vmax=4 中使用 viridis 配色方案。这是代码:
ax.contourf(xi/d,yi/d,data/d,12,vmin=0,vmax=4,cmap=vs.viridis(),aspect='equal')
现在我从另一个计算中得到了一个特定位置的数据点,data=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)