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
相关产品推荐
相关产品推荐

