问题描述
我有一个相当复杂的图,它在我的数据中显示了三个不同的变量-请参见下面的示例图.我删除了其中一个图例,并试图通过填充正方形来更清楚地显示辅音
的颜色.我已经尝试过使用 guide_legend(override.aes())
,但是我找不到一种调整颜色的方法.有办法吗?
I have a rather complicated plot that shows three different variables in my data - see the example plot below. I've removed one of the legends and am trying to show the consonant
colours more clearly by filling in the squares. I've tried using guide_legend(override.aes())
but I can't find a way to adjust the colours on this. Is there a way to do it?
示例数据为:
exampledata <- tribble(~subject, ~group, ~time, ~consonant, ~type, ~n,
"1", "A", 1, "p", F, 10,
"1", "A", 1, "t", T, 12,
"1", "A", 1, "k", T, 50,
"2", "A", 1, "p", T, 0,
"2", "A", 1, "t", T, 45,
"2", "A", 1, "k", F, 23,
"2", "A", 2, "p", F, 2,
"2", "A", 2, "t", T, 34,
"2", "A", 2, "k", T, 56,
"3", "B", 1, "p", F, 12,
"3", "B", 1, "t", T, 13,
"3", "B", 1, "k", F, 50,
"4", "A", 1, "p", T, 10,
"4", "A", 1, "t", F, 12,
"4", "A", 1, "k", T, 50,
"5", "B", 1, "p", T, 0,
"5", "B", 1, "t", T, 24,
"5", "B", 1, "k", F, 3,
"5", "B", 2, "p", F, 23,
"5", "B", 2, "t", F, 12,
"5", "B", 2, "k", T, 7,
"6", "A", 1, "p", F, 52,
"6", "A", 1, "t", F, 12,
"6", "A", 1, "k", T, 64
)
还有我到目前为止所拥有的 ggplot
代码:
And the ggplot
code that I have so far:
exampleplot <- ggplot(exampledata, aes(x = time, y=n,
fill=type, colour = consonant)) +
geom_col(lwd = 1, aes(linetype = group)) +
scale_linetype_manual(values = c("A" = "solid",
"B" = "twodash"), guide = F) +
facet_grid(~subject, scales = "free_x", switch = "x") +
scale_fill_manual(values=c("gray97", "gray77"),
labels = c("Type 1", "Type 2")) +
theme_bw(base_size = 18) +
theme(strip.text.x = element_text(angle=75),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
panel.border =element_blank(),
strip.background = element_blank())
plot(exampleplot)
推荐答案
exampleplot <- ggplot(exampledata, aes(x = time, y=n,
alpha=type, fill = consonant, color = consonant)) +
geom_col(lwd = 1, aes(linetype = group)) +
scale_linetype_manual(values = c("A" = "solid",
"B" = "twodash"), guide = F) +
facet_grid(~subject, scales = "free_x", switch = "x") +
scale_alpha_discrete(range=c(0.4,0.8),
labels = c("Type 1", "Type 2")) +
theme_bw(base_size = 18) +
theme(strip.text.x = element_text(angle=75),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
panel.border =element_blank(),
strip.background = element_blank())
plot(exampleplot)
我在 aes
和 alpha
中添加了 fill
,以保持 Type
之间的差异.您要用实心平方输出吗?
I added a fill
in the aes
and alpha
to keep the differences between Type
. Is this the output you want with filled squared?
这篇关于在ggplot中更改图例形状的填充的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!