R语言处理不等间隔数据集并绘制高度-温度对比图的方法
R语言实现方案
依赖包
使用dplyr完成数据分组统计,ggplot2完成可视化,首次使用请先安装依赖:
install.packages(c("dplyr", "ggplot2")) library(dplyr) library(ggplot2)
步骤1:定义统一高度区间
根据需求设置区间范围和步长,示例为0-80km、步长10km,需调整参数直接修改对应变量即可:
# 单位均为米,对应0-80km范围、10km步长 min_height <- 0 max_height <- 80000 step <- 10000 # 生成区间断点、区间中点(用于绘图Y轴刻度) breaks <- seq(min_height, max_height, by = step) mid_height <- breaks[-length(breaks)] + step/2
步骤2:分组计算区间平均温度
# 计算dat1各区间平均温度 avg1 <- dat1 %>% mutate(group = cut(Height, breaks = breaks, include.lowest = TRUE)) %>% group_by(group) %>% summarise(avg_temp = mean(Temp, na.rm = TRUE)) %>% mutate(dataset = "数据集1", height = mid_height/1000) # 高度转换为km单位 # 计算dat2各区间平均温度 avg2 <- dat2 %>% mutate(group = cut(Height, breaks = breaks, include.lowest = TRUE)) %>% group_by(group) %>% summarise(avg_temp = mean(Temp, na.rm = TRUE)) %>% mutate(dataset = "数据集2", height = mid_height/1000) # 合并结果用于绘图 plot_df <- bind_rows(avg1, avg2)
步骤3:绘制对比曲线
ggplot(plot_df, aes(x = avg_temp, y = height, color = dataset)) + geom_line(linewidth = 1) + geom_point(size = 2) + labs(x = "平均温度(℃)", y = "高度(km)", color = "数据来源") + theme_bw()
补充说明
- 若需调整区间参数,直接修改
min_height、max_height、step三个变量的数值即可,例如步长改为5km只需将step设为5000 - 空区间会自动返回NA值,绘图时自动跳过,不会影响结果展示
内容的提问来源于stack exchange,提问作者Lyndz
相关产品推荐
相关产品推荐

