ggplot2绘图调整:移除默认背景、添加内置标题与线端标注
ggplot2时序图调整实现代码
以下是完全匹配你提出的6项展示要求的调整后代码:
## 模拟ARIMA(1, 0, 0)序列 set.seed(799837) ts <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 10) gplot <- ggplot(NULL, aes(y = ts, x = seq_along(ts))) + scale_x_continuous(breaks = seq(1,10,2)) + geom_line(color = "#F2AA4CFF") + geom_point(color = "#101820FF") + xlab('时间') + ylab('序列值') + # 放置绘图区内的(a)标题,顶部居中不贴近折线 annotate("text", x = 5.5, y = Inf, label = "(a)", vjust = 2, size = 5) + # 折线头部放置φ=.8公式 annotate("text", x = 1, y = ts[1] + 0.3, label = expression(phi == .8), parse = TRUE, hjust = 0, size = 4) + # 折线尾部放置sd=1标注 annotate("text", x = 10, y = ts[10] + 0.3, label = "sd = 1", hjust = 1, size = 4) + scale_y_continuous(expand = c(0.0, 0.00)) + theme( # 纯色背景设置 panel.background = element_rect(fill = "white"), # 保留四条边框线 panel.border = element_rect(color = "black", fill = NA, linewidth = 0.8), # 灰色网格线设置 panel.grid.major = element_line(color = "grey70", linewidth = 0.3), panel.grid.minor = element_line(color = "grey80", linewidth = 0.2), # 保留原有的坐标轴样式配置 axis.text = element_text(size = 10, angle = 0, vjust = 0.0, hjust = 0.0), axis.title = element_text(size = 10), axis.title.x = element_text(angle = 0, hjust = 0.5, vjust = 0.5, size = 10), axis.title.y = element_text(angle = 90, hjust = 0.5, vjust = 0.5, size = 14) ) gplot
调整逻辑说明
- 纯色背景通过
panel.background设置填充为白色实现 - 绘图区内标题用
annotate固定在绘图区顶部居中位置,vjust参数控制和下方折线的间距 - 头尾标注自动提取折线首尾点的坐标,微调垂直偏移量避免遮挡折线,适配任意生成的序列位置
- 边框通过
panel.border实现,fill设为NA避免遮盖绘图内容 - 网格线分别对主次层级设置不同灰度的灰色样式
内容的提问来源于stack exchange,提问作者Daniel James
相关产品推荐
相关产品推荐

