我制作了一系列绘图,每个绘图的值范围不同,因此各个绘图之间的比例也不同。我正在尝试使比例尺保持一致(从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()
}
}
答案 0 :(得分:3)
鉴于您正在将scale_fill_gradient
变量映射到scale_color_gradient
而不是amt
参数,因此您可能希望使用fill
而不是color
。此外,除非您要指定第三种中间色,否则无需使用scale_fill_gradient2
。一旦使用了正确的比例,就可以使用limits参数显式设置比例的极限:
... + scale_fill_gradient(low = "green", high = "blue",
limits = c(0,130000))
设置后,无论所绘制数据的范围如何,所有图的比例都将相同。