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

R中如何重构dataframe以绘制不同适宜性的滑雪场分地区面积柱状图

实现步骤

1. 数据结构重构

你需要将现有的长表结构转为宽表,同时按TA分组计算总面积,推荐使用tidyverse系列工具实现,逻辑更直观:
如果还没安装依赖包,先运行安装命令:

install.packages("tidyverse")

加载包并完成数据转换:

library(tidyverse)

# 转换为目标结构的宽表
TA_area_wide <- TA_area %>%
  # 以ID、TA为固定列,将Suitability的取值转为新列,对应填充Area值
  pivot_wider(
    id_cols = c(ID, TA),
    names_from = Suitability,
    values_from = Area
  ) %>%
  # 计算每个TA的两类面积总和,缺失值按0处理
  mutate(
    Area = sum(c(`Limited Suitability`, Suitable), na.rm = TRUE),
    .by = c(ID, TA)
  )

运行后得到的TA_area_wide就是你需要的目标结构数据框。

2. 绘制柱状图

仅展示Suitable类别面积

可以直接从原始长表筛选数据绘图,无需提前转换结构:

ggplot(
  TA_area %>% filter(Suitability == "Suitable"),
  aes(x = TA, y = Area)
) +
  geom_col(fill = "#2E8B57") +
  labs(x = "TA区域", y = "适宜面积", title = "各TA滑雪场适宜建设面积")

同时展示两类面积

如果需要对比同一TA的两类适宜性面积,直接给geom_col添加分组填充参数即可:

# 并列柱状图
ggplot(TA_area, aes(x = TA, y = Area, fill = Suitability)) +
  geom_col(position = position_dodge(0.9)) +
  labs(x = "TA区域", y = "面积", title = "各TA滑雪场适宜性面积分布")
# 堆叠柱状图
ggplot(TA_area, aes(x = TA, y = Area, fill = Suitability)) +
  geom_col() +
  labs(x = "TA区域", y = "面积", title = "各TA滑雪场适宜性面积分布")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:18:05