我想在ggplot中安排多行和多行图例。但是目前,从文档中,我只能在1个图例中确定方向或操作行/列。我忽略了什么吗?感谢您对解决方案的任何参考。这是示例代码,我做了什么以及预期的结果。
data <- seq(1000, 4000, by=1000)
colorScales <- c("#c43b3b", "#80c43b", "#3bc4c4", "#7f3bc4")
names(colorScales) <- data
ggplot() +
geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
shape=21) +
scale_color_manual(name="Legend 1",
values=colorScales) +
scale_fill_gradientn(name="Legend 2",
labels=comma, limits=c(0, max(data)),
colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
values=c(0, 0.5, 1)) +
scale_size_continuous(name="Legend 3") +
theme(legend.direction = "vertical", legend.box = "vertical")
Run Code Online (Sandbox Code Playgroud)
ggplot() +
geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
shape=21) +
scale_color_manual(name="Legend 1",
values=colorScales) +
scale_fill_gradientn(name="Legend 2",
labels=comma, limits=c(0, max(data)),
colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
values=c(0, 0.5, 1)) +
scale_size_continuous(name="Legend 3") +
theme(legend.direction = …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制一个包含两个图例的图,一个位于图的底部,另一个位于图的右侧。
library(tidyverse)
df <- tibble(names = mtcars %>%
rownames(),
mtcars)
#plot 1
p1 <- df %>%
filter(names == "Duster 360" | names == "Valiant") %>%
ggplot(aes(x = as.factor(cyl), y = mpg, color = names)) +
geom_point() +
geom_hline(aes(yintercept = 20, linetype = "a")) +
theme(legend.position = "bottom")
p1
Run Code Online (Sandbox Code Playgroud)
所需的情节(图例应位于情节之外):