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

如何用R绘制类似Excel的分组散点图?含数据及技术问题

R语言散点图绘制问题解决

需求与数据

需要绘制包含两组数据的散点图,原始数据如下:

分钟数组1组2
1199176
2188157
3169144

遇到的问题

  1. 如何将两组数据放置在同一张散点图中
  2. 如何调整图表的坐标轴范围与刻度

原始尝试代码

install.packages("tidyverse")
library(tidyverse)
fnames = c(1, 2, 3)
g1 = c(119, 118, 157)
g2 = c(176, 157, 144)
    
hr_data_class = tibble(Minutes = fnames,Group_1 = g1,Group_2 = g2)

print(hr_data_class)

ggplot(hr_data_class, aes(x=fnames,, y=g1 + g2, color=cyl, shape=cyl)) + geom_point(shape=6, color= "#154734") + labs(x="Time (Minutes)",y="Heart Rate (BPM)")

ggplot(hr_data_class, aes(x=g1,, y=g2, color=cyl, shape=cyl)) + geom_point(shape=6, color= "#154734") + labs(x="Time (Minutes)",y="Heart Rate (BPM)")

plot(fnames,g1,col='red',pch=19,cex=3,xlab='X1',ylab='Y1',main='hello world')

plot(fnames,g2,col='red',pch=19,cex=3,xlab='Time (Minutes)',ylab='Heart Rate (BPM)',main='Class Heart Rate Data')

问题分析与解决方案

1. 多组数据同图绘制

ggplot2更适合处理长格式数据,需先将现有宽格式数据转换为长格式,通过pivot_longer实现,之后用颜色/形状区分组别即可。

2. 坐标轴范围与刻度调整

使用scale_x_continuous()和scale_y_continuous()函数,通过limits设置范围,breaks设置刻度间隔,比基础的xlim()/ylim()更灵活。

完整修正代码

# 安装并加载tidyverse(首次运行需执行install)
install.packages("tidyverse")
library(tidyverse)

# 使用表格中的正确数据创建数据框
Minutes <- c(1, 2, 3)
Group_1 <- c(199, 188, 169)
Group_2 <- c(176, 157, 144)

hr_data_class <- tibble(Minutes, Group_1, Group_2)

# 转换为长格式数据
hr_data_long <- hr_data_class %>%
  pivot_longer(
    cols = starts_with("Group_"),
    names_to = "组别",
    values_to = "心率"
  )

# 绘制散点图并调整坐标轴
ggplot(hr_data_long, aes(x = Minutes, y = 心率, color = 组别, shape = 组别)) +
  geom_point(size = 3) + # 设置点大小
  labs(x = "时间(分钟)", y = "心率(BPM)", title = "两组心率数据散点图") +
  # 调整X轴范围与刻度
  scale_x_continuous(limits = c(0, 4), breaks = seq(1, 3, 1)) +
  # 调整Y轴范围与刻度(可根据需求修改数值)
  scale_y_continuous(limits = c(140, 210), breaks = seq(140, 210, 10)) +
  theme_minimal() # 可选:应用简洁主题

代码说明

  • 数据转换:pivot_longer将宽格式的Group_1/Group_2列转换为"组别"列,对应心率值存入"心率"列,方便ggplot分组。
  • 分组绘制:aes()中用color = 组别和shape = 组别让两组数据以不同颜色和形状展示,自动生成图例。
  • 坐标轴调整:limits定义坐标轴的显示范围,breaks设置刻度的显示间隔,可根据实际需求修改数值。

内容的提问来源于stack exchange,提问作者Joshua W. Kelly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:44:50