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

如何使用R语言plot函数为折线图每条折线末端添加标签

用R基础plot()为折线末端添加标签

完全可以用基础绘图系统实现,核心是通过text()函数定位到每条折线的末端坐标,然后添加对应标签。下面是完整的实现步骤和示例代码:

步骤1:模拟/准备数据

假设你的case_study1是行代表不同类别、列代表年份(V20xx)的表格,先处理成绘图需要的格式:

# 模拟case_study1数据(替换成你的真实数据)
case_study1 <- data.frame(
  Category = c("类别A", "类别B", "类别C"),
  V2018 = c(10, 15, 8),
  V2019 = c(12, 18, 10),
  V2020 = c(15, 20, 12),
  V2021 = c(18, 22, 15),
  V2022 = c(20, 25, 18)
)

# 提取年份作为x轴刻度
years <- 2018:2022
# 将每行转换为数值向量(剔除类别列)
line_vectors <- lapply(1:nrow(case_study1), function(i) as.numeric(case_study1[i, -1]))

步骤2:绘制基础折线图

先初始化画布,再依次添加所有折线:

# 初始化绘图,设置y轴范围时预留标签空间(避免标签超出画布)
plot(years, line_vectors[[1]], type = "l", lwd = 2, col = "#E63946",
     xlab = "年份", ylab = "数值", ylim = range(unlist(line_vectors)) + c(-1, 3))

# 循环添加剩余折线
line_colors <- c("#457B9D", "#1D3557")
for (i in 2:length(line_vectors)) {
  lines(years, line_vectors[[i]], type = "l", lwd = 2, col = line_colors[i-1])
}

步骤3:添加末端标签

通过tail()获取每条折线的最后一组坐标,用text()在对应位置添加标签:

# 循环为每条折线添加末端标签
all_colors <- c("#E63946", "#457B9D", "#1D3557")
for (i in 1:length(line_vectors)) {
  last_x <- tail(years, 1)
  last_y <- tail(line_vectors[[i]], 1)
  
  # pos=4表示标签在坐标右侧,offset控制距离,cex调整字号
  text(last_x, last_y, labels = case_study1$Category[i],
       pos = 4, offset = 0.3, col = all_colors[i], cex = 1.1)
  
  # 可选:给末端点加标记,增强可读性
  points(last_x, last_y, pch = 16, col = all_colors[i], cex = 1.2)
}

关键细节说明

  • 调整ylim:一定要给标签预留足够的垂直空间,否则标签会被截断
  • 标签位置:pos参数可灵活调整(1=下方,2=左侧,3=上方,4=右侧),如果末端靠近图边缘,也可以手动偏移x坐标(比如last_x + 0.1)
  • 样式自定义:通过col、cex、font等参数匹配折线的样式,保持视觉一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:40:32