【发布时间】:2023-04-05 10:12:01
【问题描述】:
我在ggplot2 中配置情节图例时遇到了很多麻烦。我有两个数据框:
require(ggplot2)
mat <- rep(c("None", "wood", "steel"), each = 4)
feet = rep(seq(0,3), 3)
load = c(3:6, 4:7, 5:8)
soil <- data.frame(
feet = feet,
test = rep(1:3, each = 4),
load = c(0.1, 0.2, 0.3, 0.04,
0.5, 0.6, 0.7, 0.44,
0.8, 0.9, 1.0, 0.74)
)
dat <- rbind(
data.frame(
feet = feet,
mat = mat,
load = c(3:6, 4:7, 5:8),
SF = FALSE
),
data.frame(
feet = feet,
mat = mat,
load = c(6:9, 7:10, 8:11),
SF = TRUE
)
)
我想要一个带有 dat$mat 的图例和 soil$test 的图例的情节:
myplot <- ggplot(dat, aes(x = load, y = feet)) +
geom_line(aes(color = mat, linetype = SF)) +
geom_path(dat = soil, aes(x = load, y = feet, color = factor(test)))
myplot
我不想要名为 SF 的图例。另外,我想将名为 mat 的图例拆分为两个图例,mat(值 = "none"、"wood"、"steel")来自 dat data.frame 和 test(值= 1, 2, 3) 来自soil data.frame。
我尝试了theme(legend.position = "none"),以及许多其他各种代码组合,如果我将它们全部列出,它们会填满页面。感谢您提供的任何帮助。
【问题讨论】:
-
第一个问题使用
scale_linetype(guide = FALSE) -
我开始相信同一美学不可能有单独的图例
-
@MM 我一直在尝试所有的早晨,至少 8 小时到这个...... ;) 似乎应该有可能看到它们来自不同的表、不同的变量名和不同的绘制它们的函数(即 geom_line vs geom_path)
-
但他们使用相同的 aes,即颜色。如果您搜索,您会看到许多分别带有填充和颜色的 geom bar 和 geom line 示例。我能够为其中一个在 aes 之外添加颜色,并且只为一个获得图例。所以我想如果你想走那条老路,你可以添加第二个图例作为手动注释。
-
Aes(..) 参数将变量链接到您在图中看到的内容。当您在每个 geom_ 上放置颜色时,您会将颜色与 aes() 中的变量名称相关联,在这种情况下是相同的。出于这个原因,我认为它们不能分开。