我试图为使用ggplot2制作的复合图表生成一个好的图例,其中有一个躲闪的条形图和一条水平线,用于显示土壤中钡的参考值。问题是,hline图例的特征是"污染"也是barplot之一。我已经看到类似的主题试图调整其他提出的解决方案,但没有任何重大结果。
这是我的例子:
数据帧:
Position Year Value
Position 1 1999 12
Position 2 1999 14
Position 3 1999 15
Position 1 2000 13
Position 2 2000 11
Position 3 2000 21
Position 1 2001 12
Position 2 2001 13
Position 3 2001 16
代码:
ggplot(input, aes(fill=Year , x=Position, y=Value)) +
geom_bar(stat="identity",
position="dodge", size=0.1, width=0.5, show.legend=TRUE) +
labs(title="Barium concentration in the soil") +
xlab("Samples") +
ylab("Concentration in ng/kg") +
scale_y_continuous(limits = c(0, 30)) +
#color of barplot
scale_fill_manual(values=c("grey40", "grey70", "grey80")) +
#limit value
geom_hline(aes(yintercept=40, colour = "red"), size=0.9, alpha=0.8, show.legend=TRUE )
这是图表
正如您所看到的,hline图例的功能正在浪费一个条形图。
答案 0 :(得分:3)
你可以这样做:
ggplot(input, aes(fill=Year , x=Position, y=Value)) +
geom_bar(stat="identity", position="dodge", size=0.1, width=0.5) +
labs(title="Barium concentration in the soil") + xlab("Samples") +
ylab("Concentration in ng/kg") +
scale_y_continuous(limits = c(0, 30))+
geom_hline(aes(yintercept=20, colour="limit"), size=0.9, alpha=0.8) +
scale_fill_manual(values=c("grey40", "grey70", "grey80")) +
scale_color_manual(name="Foo", values=c(limit="red")) +
theme(legend.key = element_rect(fill = "white", colour = "white"))
情节如下: