在R语言中绘制DataFrame折线图并自定义颜色
在R里绘制仿Excel风格的自定义颜色折线图
首先得把你的宽格式数据转成长格式,ggplot这类绘图工具更适配长格式数据:
library(tidyr) library(ggplot2) # 转换为ggplot可用的长格式 df_long <- pivot_longer(df, cols = -SUBJECT, names_to = "分组", values_to = "数值")
接下来自定义每个分组的折线颜色,只要颜色名称和分组名对应上,就能任意调整:
# 示例颜色,你可以替换成自己需要的十六进制色号或颜色名称 自定义颜色 <- c( "A" = "#ff4500", "B" = "#1e90ff", "C" = "#32cd32", "D" = "#ffd700", "E" = "#ff69b4", "F" = "#00fa9a", "G" = "#dc143c", "H" = "#4682b4", "I" = "#9370db", "L" = "#ff8c00", "M" = "#00ced1", "N" = "#f08080", "O" = "#adff2f", "P" = "#daa520", "Q" = "#98fb98", "R" = "#cd5c5c", "S" = "#6495ed", "T" = "#ffb6c1", "V" = "#87cefa" )
然后就可以绘图了,想要更贴近Excel默认样式,还能借助ggthemes包的专属主题:
# 基础简洁版 ggplot(df_long, aes(x = SUBJECT, y = 数值, color = 分组, group = 分组)) + geom_line(linewidth = 1) + # 线宽贴近Excel默认 scale_color_manual(values = 自定义颜色) + # 应用自定义颜色 labs(x = "受试者", y = "数值", title = "各分组折线图") + theme_minimal() + theme( plot.title = element_text(hjust = 0.5), # 标题居中 legend.position = "right", # 图例放右侧,和Excel一致 axis.text = element_text(size = 10), axis.title = element_text(size = 12) ) # 高度仿Excel版(需先安装包:install.packages("ggthemes")) library(ggthemes) ggplot(df_long, aes(x = SUBJECT, y = 数值, color = 分组, group = 分组)) + geom_line(linewidth = 1) + scale_color_manual(values = 自定义颜色) + labs(x = "受试者", y = "数值", title = "各分组折线图") + theme_excel() + theme(plot.title = element_text(hjust = 0.5))
如果你的Excel原图还有数据点、特定网格线这类细节,添加geom_point()就能显示数据点,调整theme里的panel.grid.major/panel.grid.minor参数就能修改网格线样式。
内容的提问来源于stack exchange,提问作者Ed9012
相关产品推荐
相关产品推荐

