- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 seaborn 制作颜色图并使用以下代码:
import seaborn as sns
cmap = sns.color_palette("dark:#034694", as_cmap=True)
现在我想要这个 cmap
中所有颜色代码的列表,它的类型是 matplotlib.colors.LinearSegmentedColormap
。我应该怎么做才能从变量 cmap
中获取所有颜色代码。
最佳答案
想法是获取比颜色图中包含的颜色更多的颜色,然后将结果限制为唯一颜色。
list(set([cmap(a) for a in np.linspace(0,1,1000)]))
调查 source我们可以看到LinearSegmentedColormap继承自Colormap,也就是说当我们执行类似cmap(0.5)
的操作时,Colormap
的__call__
方法将被执行。
看这个方法:
def __call__(self, X, alpha=None, bytes=False):
[...]
if not self._isinit:
self._init()
[...]
if bytes:
lut = (self._lut * 255).astype(np.uint8)
else:
lut = self._lut.copy() # Don't let alpha modify original _lut.
[...]
rgba = lut[xa]
if not np.iterable(X):
# Return a tuple if the input was a scalar
rgba = tuple(rgba)
return rgba
[omissions mine]
我们可以看到查找表self._lut
由self._init()
初始化,存储在lut
中并且可以选择缩放。
我找不到确切的 _init()
定义时间。
在任何情况下,我们都可以调用 _init()
然后访问查找表:
cmap = sns.color_palette("dark:#034694", as_cmap=True)
cmap._init()
rgbas = cmap._lut
然后按照您的评论中指出的那样转换为十六进制
hexes = [matplotlib.colors.rgb2hex(x) for x in rgbas]
关于python - 如何从 LinearSegmentedColormap 获取所有颜色代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66171467/
有人可以帮我解决 matplotlib 的这个错误吗?我正在将 jupyter 用于一本著名书籍中的一些数据科学项目(动手机器学习......),但我遇到了一个异常错误的问题。 这是代码: %matp
我是一名气候学家,经常绘制异常现象,例如使用“蓝到白到红”颜色图的温度场。为了使图表更具可读性,我使用我在互联网上“找到”的函数(但我不太了解)将颜色图离散化为一定数量的级别(箱): 像这样: imp
我正在使用 seaborn 制作颜色图并使用以下代码: import seaborn as sns cmap = sns.color_palette("dark:#034694", as_cmap=T
我正在尝试创建一个自定义颜色图,它结合了插值和离散化的颜色段。我希望 matplotlib 的 LinearSegmentedColormap可以提供这样的功能。我的测试用例是创建一个 10x10 矩
我正在尝试制作一个“有利于”较低值的颜色图,即从较深的颜色到浅色需要更长的时间。目前我正在使用它作为颜色图: cmap = clr.LinearSegmentedColormap.from_list(
我是一名优秀的程序员,十分优秀!