R绘制多城市年度预算时间序列图数据无法显示问题求助
问题原因
你出现空白图的核心原因是plot.default的参数顺序写反了:R基础绘图函数的第一个参数对应X轴变量,第二个对应Y轴变量,你现在把budget放在第一位、year放在第二位,但X轴范围设置的是1860-1910,而你的样本数据中budget都在0-5的区间内,所有数据点的X坐标都远小于1860,直接落在了画布可视区域外,自然看不到内容。
修正方案
要实现点线结合的时间序列效果,只需调整变量顺序,同时添加type="b"参数(表示同时绘制点和线)即可,你可以直接用循环批量生成6张子图,不用重复写6次代码:
- 先设置子图布局和边距(边距调整避免标签挤压)
par(mfrow = c(2,3), mar = c(4,4,2,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
相关产品推荐
相关产品推荐

