我正在使用 geom_raster 和 geom_text 在我的情节中的每个彩色矩形上放置一个字母。我也希望这封信出现在图例中的颜色框顶部,但不知道如何。
我尝试添加show.legend=TRUE到geom_text,但这会导致每个图例键中的字母“a”,而不是所需的字符。
所需的结果如下所示:
这是重现基本情节的代码:
library(tidyverse)
d <-tribble(
~a, ~b, ~c,
"a", "l", "A",
"a", "r", "F",
"b", "l", "Q",
"b", "r", "R"
)
ggplot(data=d, aes(x=a, y=b, fill=c)) +
geom_raster(na.rm=TRUE) +
geom_text(aes(label=c), size=3, na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)
和输出:
这可能与此问题有关:https://github.com/tidyverse/ggplot2/issues/2004,但也许有解决方法?
您可以geom_point改为使用并将点形状指定为带有scale_shape_manual(values = d$c).
# We have to remove legend text and label with theme
ggplot(d, aes(a, b, fill = c, shape = c)) +
geom_raster() +
geom_point(size = 3) +
scale_shape_manual(values = d$c) +
theme(legend.text = element_text(size = 0),
legend.title = element_text(size = 0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |