我制作了一系列图,并且各个图的值范围不同,因此各个图之间的比例也不同。我试图保持比例一致(从0到130000),所以我设置midpoint=6500,但似乎它不起作用。
for (i in 2016:2018){
for (m in 1:12){
yourfilename=paste(i,m,".jpg",sep="")
jpeg(file=yourfilename, width =800, height = 700)
product_by_month<- data_all%>%
filter(year==i & month==m)
product_2010_map<-c_map%>%
left_join(product_by_month,by=c("name"="city"))
pp<-ggplot(data=product_2010_map,aes(fill=amt)) +
theme(panel.background=element_blank(),
plot.title=element_text(hjust=0.5),
axis.ticks=element_blank(),
axis.text=element_blank())+
geom_sf()+
scale_color_gradient2(low = "green", high = "blue",
midpoint=6500)
print(pp)
dev.off()
}
}
Run Code Online (Sandbox Code Playgroud)
您可能想要scale_fill_gradient而不是scale_color_gradient给定您将amt变量映射到而fill不是color参数。scale_fill_gradient2此外,除非您想指定第三种中间颜色,否则不需要使用。使用正确的比例后,您可以使用 Limits 参数显式设置比例限制:
... + scale_fill_gradient(low = "green", high = "blue",
limits = c(0,130000))
Run Code Online (Sandbox Code Playgroud)
设置后,无论绘制的数据范围如何,所有绘图的比例都将相同。
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |