底部和水平的ggplot2图例

Tyl*_*ker 100 r ggplot2

如何将ggplot2图例移动到绘图底部并将其水平旋转?

示例代码:

library(reshape2) # for melt
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend())
Run Code Online (Sandbox Code Playgroud)

期望的(近似)结果: 在此输入图像描述

Shr*_*nik 132

如果要移动图例的位置,请使用以下代码:

library(reshape2) # for melt
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend()) +
    theme(legend.position="bottom")
Run Code Online (Sandbox Code Playgroud)

这应该会给你想要的结果. 传说在底部

  • 使用折旧商品是不好的做法.你可以使用主题完全相同的方式来做:`+ theme(legend.position ='bottom')` (10认同)
  • 使用当前的`ggplot`,这给了我警告''opts'已被弃用.请改用"主题".(已弃用;最后一次在0.9.1版本中使用)`.用'theme`替换`opts`是有效的. (3认同)
  • 你知道是否可以在底部绘制一个连续的图例栏?(所以不是中间的数字而是顶部的数字)。谢谢。 (2认同)

Art*_*Yip 32

两个不完美的选项,不能完全满足您的要求,但非常接近(至少会将颜色放在一起)

library(reshape2); library(tidyverse)
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend()) +
 theme(legend.position="bottom", legend.direction="vertical")
Run Code Online (Sandbox Code Playgroud)

p1 + scale_fill_continuous(guide = "colorbar") + theme(legend.position="bottom")
Run Code Online (Sandbox Code Playgroud)

reprex包创建于2019-02-28 (v0.2.1)