Reputation: 657
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?
The sample data is:
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
)
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)
Upvotes: 2
Views: 127
Reputation: 6441
Try this:
ggplot(exampledata, aes(x = time, y=n,
fill=type, colour = consonant)) +
geom_col(lwd = 1, aes(linetype = group)) +
guides(colour = guide_legend(override.aes = list(fill = c("#F8766D", "#00BA38", "#619CFF")))) +
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())
If have added this line:
guides(colour = guide_legend(override.aes = list(fill = c("#F8766D", "#00BA38", "#619CFF"))))
Upvotes: 1
Reputation: 725
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)
I added a fill
in the aes
and alpha
to keep the differences between Type
. Is this the output you want with filled squared?
Upvotes: 2