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

R绘制多城市年度预算时间序列图数据无法显示问题求助

问题原因

你出现空白图的核心原因是plot.default的参数顺序写反了:R基础绘图函数的第一个参数对应X轴变量,第二个对应Y轴变量,你现在把budget放在第一位、year放在第二位,但X轴范围设置的是1860-1910,而你的样本数据中budget都在0-5的区间内,所有数据点的X坐标都远小于1860,直接落在了画布可视区域外,自然看不到内容。

修正方案

要实现点线结合的时间序列效果,只需调整变量顺序,同时添加type="b"参数(表示同时绘制点和线)即可,你可以直接用循环批量生成6张子图,不用重复写6次代码:

  1. 先设置子图布局和边距(边距调整避免标签挤压)
par(mfrow = c(2,3), mar = c(4,4,2,1))
  1. 定义要绘制的城市列表,循环生成子图
# 替换为你实际的城市名,比如样本中的Boston可以直接填进去
cities <- c("city1", "city2", "city3", "city4", "city5", "city6")

for (city_name in cities) {
  sub_df <- mydata[mydata$city == city_name, ]
  plot(
    x = sub_df$year, 
    y = sub_df$budget, 
    xlim = c(1860, 1910), 
    ylim = c(-100, 800),
    xlab = "年份", 
    ylab = "预算(美元)",
    main = city_name,
    type = "b", # 点+线的组合样式
    pch = 16, # 实心点样式
    col = "darkblue" # 线条和点的颜色可自行调整
  )
}

如果不需要循环,单独给某个城市绘图的话,单张图的正确写法参考:

plot(
  mydata$year[mydata$city=="city1"], 
  mydata$budget[mydata$city=="city1"], 
  xlim=c(1860,1910), 
  ylim=c(-100,800), 
  xlab="City1", 
  ylab="Budget",
  type = "b"
)

内容的提问来源于stack exchange,提问作者B.Nin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:45:05