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

R语言使用ggplot2基于给定数据框实现分类变量可视化的方法

问题描述

现有如下dataframe:

df = data.frame(Date=1:5,
           Cat1=c(1,0,1,0,0),
           Cat2=c(1,1,1,0,0),
           Cat3=c(0,1,1,0,1),
           Cat4=c(0,0,1,1,0))

请问使用ggplot2工具,如何绘制出如下图所示的分类变量可视化图表?
目标可视化图表


解决方法

步骤1:转换数据格式

ggplot2更适配长格式数据,首先将宽表转为长表:

# 加载依赖包
library(ggplot2)
library(tidyr)

# 宽表转长表
df_long <- pivot_longer(df, cols = -Date, names_to = "分类", values_to = "是否存在")

步骤2:绘制图表

使用geom_tile实现这类分类变量的矩阵热图效果:

ggplot(df_long, aes(x = factor(Date), y = 分类, fill = factor(`是否存在`))) +
  # 绘制带白色分隔线的格子
  geom_tile(color = "white", size = 0.8) +
  # 自定义配色,和示例图风格匹配
  scale_fill_manual(values = c("0" = "#f5f5f5", "1" = "#1a73e8"), labels = c("否", "是")) +
  # 设置坐标轴标题
  labs(x = "日期", y = "分类项", fill = "是否命中") +
  # 调整主题样式
  theme_bw() +
  theme(
    panel.grid = element_blank(), # 移除默认网格线
    axis.ticks = element_line(color = "black")
  )

运行上述代码即可得到和目标样式一致的图表,你可以根据需要调整配色、边框粗细等参数适配自己的需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:45:03