我有一个数据框,包含每个州48小时的观察结果。状态名称在第1列,第2:49列包含每小时的观察结果。每列用于生成美国当时的Choropleth地图。我已经能够使用以下代码生成单个映射,其中数据框命名为" qso_per_hour"。
map_hours<-colnames(qso_per_hour[2:49]) #drop state column, get just hour column names
this_map<-map_hours[18] # hour 18 as an example
#
ggplot(qso_per_hour, aes_string(map_id="states", fill=this_map))+
geom_map(map=states_map, colour="black") # other formatting code trimmed
我想要做的是生成所有48小时地图,每个地图都在自己的页面上,并将它们保存到图形文件中。首先,我只是想让它们显示在屏幕上。当我将此代码放入一个简单的for循环时,它不再绘制地图。
map_hours<-colnames(qso_per_hour[2:49]) #drop state column, get just hour column names
for (this_map in map_hours) {
ggplot(qso_per_hour, aes_string(map_id="states", fill=this_map))+
geom_map(map=states_map, colour="black") # other formatting code trimmed
}
运行时,将打开R Graphic:Device窗口,但不再绘制地图。窗口仍然是灰色的。我花了几个小时寻找答案。它必须是简单的东西。有人有主意吗?在调试中我还在循环结束时放了一个readline语句,让它等我说可以画下一张地图,但这并没有解决问题。
提前感谢任何想法。
答案 0 :(得分:0)
经过进一步调查,我发现我遇到的问题是&#34; ggplot的实例在for循环中不起作用&#34;以前曾多次提到过。对不起,我没有链接。解决方案是将ggplot函数放在print()函数中。然后它包含在for循环中工作正常。