You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用geom_density_2d_filled反转viridis色阶时出现错误

解决方法

问题原因

geom_density_2d_filled() 生成的是离散型填充类别(即密度区间,如 (0.00, 0.01]),而默认的 scale_fill_viridis() 是针对连续型数据的颜色映射,二者类型不匹配,因此触发错误。

修正代码

要适配离散型填充,需使用 viridis 的离散版颜色刻度,有两种实现方式:

方式一:显式指定 discrete = TRUE

library(ggplot2)
library(viridis)
df <- data.frame(x = c(rnorm(2000) + 2, -rexp(1000, rate = 1)), 
                  y = c(rnorm(2000) + 2, -rexp(1000, rate = 1))
                 )

ggplot(df, aes(x = x, y = y)) +
  geom_density_2d_filled() +
  scale_fill_viridis(discrete = TRUE, direction = -1)

方式二:直接使用离散版函数 scale_fill_viridis_d()

ggplot(df, aes(x = x, y = y)) +
  geom_density_2d_filled() +
  scale_fill_viridis_d(direction = -1)

效果说明

上述两种方式均会反转 viridis 色阶,实现低密度显示浅色、高密度显示深色的需求,同时解决类型不匹配的报错问题。

内容的提问来源于stack exchange,提问作者Thomas Philips

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:10:57