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

如何随时间绘制二元变量1的出现频率?R语言热力图实现需求

绘制二元变量随时间的出现频率热力图

步骤1:计算各时间点的1出现频率

首先对数据按time分组,计算每个时间点上1的出现频率(0/1变量的均值即为1的占比):

library(dplyr)

# 按time分组计算频率
freq_data <- dd %>%
  group_by(time) %>%
  summarise(positive_freq = mean(outcome, na.rm = TRUE))

步骤2:绘制热力图

使用ggplot2的geom_tile绘制热力图,用颜色深浅反映1的出现频率:

library(ggplot2)

ggplot(freq_data, aes(x = time, y = 1, fill = positive_freq)) +
  # 绘制色块,白色边框区分每个时间点
  geom_tile(color = "white") +
  # 使用viridis色系实现友好的颜色渐变
  scale_fill_viridis_c(option = "plasma", name = "1的出现频率") +
  # 设置标签和标题
  labs(x = "时间", y = "", title = "1随时间的出现频率热力图") +
  # 简洁主题,隐藏y轴无关元素
  theme_minimal() +
  theme(axis.text.y = element_blank(), axis.ticks.y = element_blank())

可选:按时间区间汇总频率

如果时间序列较长,想查看时间段而非单个时间点的频率,可以先对time分箱再计算:

# 按每10个时间单位为一个区间分组
freq_data_bin <- dd %>%
  mutate(time_bin = cut(time, breaks = seq(0, max(time), by = 10), include.lowest = TRUE)) %>%
  group_by(time_bin) %>%
  summarise(positive_freq = mean(outcome, na.rm = TRUE))

# 绘制区间版热力图
ggplot(freq_data_bin, aes(x = time_bin, y = 1, fill = positive_freq)) +
  geom_tile(color = "white") +
  scale_fill_viridis_c(option = "plasma", name = "1的出现频率") +
  labs(x = "时间区间", y = "", title = "1随时间区间的出现频率热力图") +
  theme_minimal() +
  theme(axis.text.y = element_blank(), axis.ticks.y = element_blank())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:25:37