如何获取Makie热力图自动设置的颜色范围?
获取Makie热力图自动设置的颜色范围
当你创建Makie热力图后,直接查看hp.colorrange[]得到的是MakieCore.Automatic(),这是因为该属性存储的是配置标记(表示自动计算颜色范围),而非实际生效的极值。要提取实际的颜色范围最小值和最大值,有两种可靠方法:
方法1:使用Makie内置函数get_colorrange
Makie提供了专门的函数来获取元素实际生效的颜色范围,直接传入热力图对象即可:
using Makie fig, ax, hp = heatmap(randn(16,16)) # 获取实际颜色范围 actual_crange = Makie.get_colorrange(hp) # 拆分出最小值和最大值 min_val, max_val = actual_crange
方法2:直接从颜色数据计算极值
自动颜色范围本质上是基于热力图的原始颜色数据的极值生成的,因此可以直接从hp.color[]中提取:
data = hp.color[] min_val, max_val = extrema(data)
这两种方法在colorrange设为Automatic()时结果完全一致;如果后续手动调整了颜色范围(比如设置固定值),get_colorrange会返回调整后的生效范围,而直接计算数据极值会得到原始数据的极值,按需选择即可。
内容的提问来源于stack exchange,提问作者aquaticapetheory
相关产品推荐
相关产品推荐

