0

我需要比较两个相同数量的地图,我想在两个图表中保持调色板不变,以便于理解,但看起来我不知道该怎么做。

我应该设置限制(例如,所有分配到低的地块和最高级别到高的地块之间的最小值吗?)

有没有简单的方法可以做到这一点?

我是新手,很抱歉,如果解决方案是平庸的,我浏览了很多博客文章,但看起来我什么也没找到。

我的代码:

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")

给你一个想法,这是一张图片

一个图像

这是另一个

其他

一点都不清楚!图像仍然需要一些“美化”它只是为了给出一个想法

基本上我想要的是这个问题,但对于离散(因子)值

4

2 回答 2

2

我无法重现您的情节,因为您没有向我们提供数据,但设置limitsascale_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。您正在映射填充属性,所以我认为您需要scale_fill_gradient.

于 2014-06-26T07:08:46.773 回答
0

我没有完全解决您的问题,但请尝试将其添加到您的所有情节中。那么颜色代码应该是统一的。

+scale_colour_brewer(pallette="Set1")

您可以使用示例 http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/#color-charts添加此处显示的任何调色板

于 2014-06-26T06:52:47.087 回答