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

如何在ggplot2中筛选变量,制作指定年份数据的散点图?

解决方案

要制作符合要求的散点图,首先需要从原始长格式数据中提取对应年份的变量并按城市ID匹配,再进行绘图。以下提供两种常用方法:

方法一:基础R绘图

  1. 提取2012年的变量A和2015年的变量B,保留城市ID用于匹配:
# 筛选2012年的A数据
a_2012 <- df[df$Year == 2012, c("CityID", "A")]
# 筛选2015年的B数据
b_2015 <- df[df$Year == 2015, c("CityID", "B")]
# 按CityID合并数据
plot_data <- merge(a_2012, b_2015, by = "CityID")
  1. 绘制散点图:
plot(plot_data$A, plot_data$B, 
     xlab = "2012年变量A", 
     ylab = "2015年变量B", 
     main = "2012年A vs 2015年B散点图",
     pch = 16, # 设置点样式为实心圆
     col = "steelblue") # 设置点颜色

方法二:ggplot2包绘图

如果习惯用ggplot2的语法,步骤如下:

  1. 先加载包并整理数据(数据整理逻辑和基础R一致):
library(ggplot2)

plot_data <- merge(
  df[df$Year == 2012, c("CityID", "A")],
  df[df$Year == 2015, c("CityID", "B")],
  by = "CityID"
)
  1. 绘制散点图:
ggplot(plot_data, aes(x = A, y = B)) +
  geom_point(color = "steelblue", size = 3) + # 设置点的颜色和大小
  labs(
    x = "2012年变量A",
    y = "2015年变量B",
    title = "2012年A与2015年B的散点图"
  ) +
  theme_bw() # 使用简洁的黑白主题

说明

原始数据是长格式(每条记录对应单个城市的单个年份数据),因此必须先将2012年的A和2015年的B按CityID合并,确保每个城市的两个年份数据一一对应,这样x轴和y轴的长度才能匹配,顺利绘制散点图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:35:12