[英]An issue with a legend in ggplot2
我问你,因为我对ggplot2中的图例有疑问。 这是一个简化的案例
library(ggplot2)
library(datasets)
bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group, color=group)) + geom_boxplot()
bp +scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 2", "legend 3")) +
scale_color_manual(values=c("black", "red", "green"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 2", "legend 3"))
在这种情况下,我的图例标签为:“传奇1”,“传奇2”和“传奇3”
现在,我想为图例添加相同的标签:“传奇1”(还有三个图例框)。 所以我的代码是:
bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group, color=group)) + geom_boxplot()
bp +scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 1", "legend 1")) +
scale_color_manual(values=c("black", "red", "green"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 1", "legend 1"))
但是,显然这不是我想要的,因为从现在开始,我有9个图例框。 因此,我的问题是:在这种情况下,我如何能有一个带有三个框的图例(每个框图每个框一个),但图例的标签可能相同? 此外,为什么ggplot2像这样对待我的代码?
如果可以的话,您会给我很大帮助! 谢谢你的帮助。 对不起我的英语错误,实际上我是一个非本地人。
我认为问题来自ggplot如何将图例组合在一起。 如果它们具有相同的标题和标签,则可以将它们组合在一起。 我猜想其中涉及合并,当给定重复标签时,该合并有效地创建了外部联接(组合的所有可能混合)。 我不确定是否有解决此问题的正确方法,但这是一种有效的技巧:
bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group, color=group)) + geom_boxplot()
bp +scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 1 ", "legend 1 ")) +
scale_color_manual(values=c("black", "red", "green"),
name="Experimental\nCondition",
breaks=c("ctrl", "trt1", "trt2"),
labels=c("legend 1", "legend 1 ", "legend 1 "))
因此,您拥有的标签不相同,但外观相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.