我需要比较两个相同数量的地图,我想在两个图中保持调色板不变,以便于理解,但看起来我不知道怎么做。
我应该设置限制(例如,所有分配给低和最高等级的地块之间的最小值是多少?)
有一种简单的方法吗?
我是新手,很抱歉,如果解决方案是平庸的,我会浏览很多博文,但看起来我找不到任何东西。
我的代码:
fin<-get_map("Helsinki",zoom=12)
ggmap(fin, legend="bottom")+
geom_polygon(data=a,aes(x=a$long,y=a$lat, id=id, fill=Test_statistics), alpha=0.1, colour="white")
为了给你一个想法,这是一张图片
这是另一个
根本不清楚! 图像仍然需要一点“漂亮”,这只是给出一个想法
基本上我想要的是this question,但对于离散(因子)值
答案 0 :(得分:2)
我无法重现您的情节,因为您没有向我们提供数据,但在limits
中设置scale_colour_gradient
应该有效。参见:
http://docs.ggplot2.org/0.9.3.1/scale_gradient.html
在“调整规模限制”(第二个例子)下,哈德利说:
手动设置限制在制作时也很有用 需要比较的多个图
例如(我在这里使用点是为了简单 - 您可能必须使用scale_fill_gradient
来设置多边形的填充颜色 - 我没有时间构建一些多边形):
> set.seed(310366); d=data.frame(x=runif(20),y=runif(20),
z1=rnorm(20), z2=rnorm(20)+5)
请注意z1
的范围约为-1到1,而z2
的范围是4到7.这有助于我们看到效果。
> ggplot(d,aes(x=x,y=y,col=z1))+geom_point(size=8) +
scale_colour_gradient(limit=range(c(d$z1,d$z2))
> ggplot(d,aes(x=x,y=y,col=z2))+geom_point(size=8) +
scale_colour_gradient(limit=range(c(d$z1,d$z2)))
在调色板图例上生成两个具有相同限制的图,但是第一个图具有非常暗的点,因为值都是低(-1到1),而第二个图大多是浅色,因为值都很高( 4到7)。
由于scale_colour_gradient
函数中的limit参数,两组点都使用相同的颜色到颜色的映射进行着色。您正在映射fill属性,因此我认为您需要scale_fill_gradient
。
答案 1 :(得分:0)
我没有完全解决您的问题,但请尝试将其添加到您的所有图表中。然后颜色代码应该是统一的。
+scale_colour_brewer(pallette="Set1")
您可以添加示例中显示的任何调色板 http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/#color-charts