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

R语言绘图:相同因子位置下在C、D两值间绘制垂直线段实现方案

实现方案

你可以使用R基础绘图的segments()函数绘制指定位置的垂直竖线,完整可运行代码如下:

set.seed(42)
names <- c(5, 5, 10, 10, 15)
A <- sample(5) + 10; B <- sample(5) + 10; C <- sample(5) + 5; D <- sample(5)
data <- data.frame(names, A, B, C, D)

# 初始化绘图区域,ylim需覆盖所有取值范围避免内容被截断
plot(data$A, col="blue", ylim = range(c(data$A, data$B, data$C, data$D)), xlab = "因子索引", ylab = "取值")
# 绘制B组的点
points(data$B, col="red")
# 逐位置绘制从D取值到C取值的垂直竖线
segments(x0 = 1:nrow(data), y0 = data$D, x1 = 1:nrow(data), y1 = data$C, col = "gray")

补充说明

  • segments函数只要将x0和x1设为相同值,就可以绘制垂直竖线,y0和y1分别对应竖线的上下端点
  • 如果需要调整竖线样式,可以给segments添加额外参数:lwd调整线宽、lty调整线型
  • 如果你需要用原始的因子值作为横坐标,可以使用以下版本的代码:
# 以因子值为横坐标的版本
x_pos <- as.numeric(as.factor(data$names))
plot(x_pos, data$A, col="blue", ylim = range(c(data$A, data$B, data$C, data$D)), xlab = "因子", ylab = "取值", xaxt = "n")
# 自定义横坐标标签
axis(1, at = unique(x_pos), labels = unique(data$names))
points(x_pos, data$B, col="red")
segments(x0 = x_pos, y0 = data$D, x1 = x_pos, y1 = data$C, col = "gray")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:36:09