我是一个ggplot2的绝对初学者,并练习使用guide_legend()函数。我不太清楚为什么guide_legend()会颠倒传说的顺序。
下面是一个基本的例子:
df <- data.frame(x = 1, y = 1:3, z = 1:3)
base <- ggplot(df, aes(x, y)) + geom_raster(aes(fill = z))这很好地产生了栅格图。
但是,当我添加以下行时,图例的顺序会被颠倒。有人能解释一下为什么会发生这种事吗?
base + scale_fill_continuous(guide = guide_legend())如果有任何想法我会很感激。不管怎样,我可以倒车吗?
谢谢
加法:--我想在默认情况下为guide_legend添加reverse = FALSE。我认为reverse=TRUE会修复它,但我不理解重置默认值的意义。我做错什么了吗?
以下是指南:我指的是legend.html
这张照片是:

这张照片来自上述网站。
发布于 2016-08-25 23:34:52
你的底图有一个连续的色阶,你可以在图例中看到:
base <- ggplot(df, aes(x, y)) + geom_raster(aes(fill = z))

这会将其转换为离散颜色刻度,因为设置guide="legend"或guide=guide_legend()会创建一个离散刻度(这是在帮助中有记载):
base + scale_fill_continuous(guide = guide_legend())

对于连续颜色标度,您可以使用下面的代码,但是没有必要,因为在默认情况下,当颜色变量是连续的(如base图所示)时,ggplot就是这样做的:
base + scale_fill_continuous(guide = guide_colourbar())保持离散的颜色比例,但逆序,使最高值在顶部。我还设置了断点,以便在图例中只显示3种颜色:
base + scale_fill_continuous(breaks=1:3, guide=guide_legend(reverse=TRUE))

更新:用于处理长注释线程,下面是guide_legend的三个情节。但是请注意,第一个文件实际上并没有显示在ggplot页面上;只显示了代码。
df <- reshape2::melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 = ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p2 = p1 + scale_fill_continuous(guide = "legend")
p3 = p1 + scale_fill_continuous(guide = guide_legend())

https://stackoverflow.com/questions/39156114
复制相似问题