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

R语言无需第三方包将两个矩阵绘制到同一张散点图的实现方法

R语言基础绘图实现两个矩阵散点同图展示

直接使用R原生基础绘图系统的plot()与points()函数组合即可实现需求,无需调用任何第三方扩展包,实现逻辑如下:

  • 先计算两个矩阵第一列、第二列所有值的取值范围,确保坐标轴能覆盖全部数据点
  • 调用plot()绘制第一个矩阵的散点,配置坐标轴范围与基础样式
  • 调用points()在已有画布上叠加第二个矩阵的散点,设置不同的点样式/颜色区分两组数据
  • 可选添加图例增强可读性

完整可运行代码

# 定义输入矩阵
x1 = matrix(data = c(1, 3, 4, 5, 5, 3, 3, 1), nrow = 4, ncol= 2, byrow = TRUE)
x2 = matrix(data = c(-1, -4, 3, 7, -2, 2, 4, -1), nrow = 4, ncol= 2, byrow = TRUE)

# 计算坐标轴全局范围
x_range <- range(c(x1[,1], x2[,1]))
y_range <- range(c(x1[,2], x2[,2]))

# 绘制x1矩阵散点
plot(
  x = x1[,1], y = x1[,2],
  xlim = x_range, ylim = y_range,
  xlab = "第一列取值", ylab = "第二列取值",
  col = "blue", pch = 16,
  main = "双矩阵散点对比图"
)

# 叠加x2矩阵散点
points(x = x2[,1], y = x2[,2], col = "red", pch = 17)

# 添加图例
legend(
  "topright",
  legend = c("x1矩阵", "x2矩阵"),
  col = c("blue", "red"),
  pch = c(16, 17)
)

若不需要区分两个矩阵的散点来源,可直接将两个矩阵按行合并后单次调用plot()即可,简化代码如下:

all_data <- rbind(x1, x2)
plot(all_data[,1], all_data[,2], xlab = "第一列取值", ylab = "第二列取值")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:06:07