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

如何在R中自定义脊线图(joyplot)展示计数数据而非密度?

解决方案

要实现按年份堆叠展示每周计数数据的脊线图,你需要用ggridges包中的geom_ridgeline(而非绘制密度图的geom_density_ridges),它可以直接基于原始数值绘制脊线。

修改后的代码

library(ggplot2)
library(ggridges)
library(dplyr)

# 模拟数据(将year转为因子,确保分组正确)
week <- c(rep(1:52,3)) 
year <- factor(c(rep(2012,52),rep(2013,52),rep(2014,52)))
x1 <- rnbinom(52, 10, .5)
x2 <- rnbinom(52, 10, .5)
x3 <- rnbinom(52, 10, .5)
x <- c(x1,x2,x3)
df <- as.data.frame(cbind(year,week,x)) %>%
  mutate(week = as.numeric(week),
         x = as.numeric(x))

# 绘制脊线图
ggplot(df, aes(x = week, y = year, height = x)) +
  geom_ridgeline(aes(fill = year), scale = 0.5, min_height = 0) + # scale控制堆叠间距,min_height确保底部对齐
  labs(x = "周", y = "年份", title = "各年份每周计数脊线图") +
  theme_ridges() # 可选主题,优化脊线样式

关键说明

  • geom_ridgeline的核心参数是height,直接绑定你的计数变量x,用于展示每周的实际数值
  • scale参数可调整不同年份脊线的垂直间距,根据可视化需求自行修改
  • min_height = 0能确保所有脊线底部对齐,避免数值为0时的显示断层问题
  • 将year转为因子类型,确保每个年份作为独立分组堆叠展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:05:16