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

R Studio中面板数据集(Panel dataset)加载与可视化咨询

面板数据加载与多社区犯罪率折线图实现方案

一、数据加载最优方式

优先用readxl包读取xlsx文件,再转换为面板格式,比直接用plm加载更稳定:

  1. 安装并加载必要包:
    # 首次运行安装包
    install.packages(c("readxl", "plm", "ggplot2"))
    # 加载包
    library(readxl)
    library(plm)
    library(ggplot2)
    
  2. 读取数据并转换为面板结构:
    # 替换为你的文件路径
    crime_data <- read_excel("犯罪率面板数据.xlsx")
    # 转换为面板数据,替换为你数据中实际的社区标识列和年份列名
    panel_data <- pdata.frame(crime_data, index = c("社区ID", "年份"))
    
    注意:数据必须包含唯一社区标识列和年份列,这是面板数据处理的核心前提。

二、折线图绘制(单图+拆分多图)

1. 单图展示51个社区犯罪率折线

直接绘制会有线条重叠,用透明度和颜色分组优化视觉效果:

ggplot(panel_data, aes(x = 年份, y = 犯罪率, color = 社区ID, alpha = 0.7)) +
  geom_line() +
  labs(title = "各社区犯罪率年度变化趋势", x = "年份", y = "犯罪率") +
  theme_minimal() +
  # 把图例移到底部,避免遮挡折线
  theme(legend.position = "bottom")
  • 调整alpha参数可降低线条重叠的视觉干扰;若社区名称过长,可通过theme(legend.text = element_text(size = 7))缩小图例文字。

2. 拆分多图(每个社区单独子图)

用facet_wrap实现自动分面,适配51个社区的布局:

ggplot(panel_data, aes(x = 年份, y = 犯罪率)) +
  geom_line(color = "#2c3e50", size = 1) +
  # 按社区分面,ncol控制列数,可按需调整
  facet_wrap(~社区ID, ncol = 9) +
  labs(title = "各社区犯罪率年度变化趋势(分面展示)", x = "年份", y = "犯罪率") +
  theme_minimal() +
  # 缩小子图标题和坐标轴文字,适配多面板布局
  theme(strip.text = element_text(size = 8),
        axis.text = element_text(size = 6))
  • 若需按区域等分类维度分组展示,可替换为facet_grid(区域分类~.)实现行/列分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:30:48