gpt4 book ai didi

r - 当一个图使用 ggplot 覆盖另一个图时如何制作自定义图例?

转载 作者:行者123 更新时间:2023-12-01 09:09:42 26 4
gpt4 key购买 nike

我需要绘制一个堆叠直方图来绘制两个不同的变量。有一个名为 T1 的变量,还有一个名为 T2 的变量。这两个变量有两种不同的状态,一种发生在之前,另一种发生在之后。我想要一个图,其中我将在一列中同时显示 T1T2,它们之前和之后的状态,但使用两种不同的颜色(一种表示状态之前,另一个表示之后的状态)。

这是我目前的代码片段:

pre <- as.data.frame( matrix( nrow=2,ncol=2,byrow=TRUE,c(60,"T1",40,"T2") ) )
post <- as.data.frame( matrix( nrow=2,ncol=2,byrow=TRUE,c(70,"T1",50,"T2") ) )
pre$V1 <- as.numeric(as.character(pre$V1))
post$V1 <- as.numeric(as.character(post$V1))

ggplot() +
geom_histogram(stat="identity", fill=c(rep("red",2)), data=post, aes(x=V2, y=V1, fill=V2, colour="Before")) +
geom_histogram(stat="identity", fill=c(rep("green",2)), data=pre, aes(x=V2, y=V1, fill=V2, colour="After")) +
scale_x_discrete("x axis") +
scale_y_continuous("y axis", limits = c(0, 100)) +
scale_colour_manual(values = c("red","green"))

所以情节看起来很棒,但我现在的问题是,我怎样才能得到一个合适的图例?所以我需要为 “After” 使用一种颜色,为 “Before” 使用另一种颜色,但不是线条,而是填充框。

最佳答案

首先,在制作条形图时使用 geom_bar()。然后对于 aes() 中的 fill=color= 使用相同的名称,然后调整颜色并填充 scale_.. 函数。

ggplot() +
geom_bar(stat="identity", data=post, aes(x=V2, y=V1, fill="Before",color="Before")) +
geom_bar(stat="identity", data=pre, aes(x=V2, y=V1, fill="After",color="After")) +
scale_x_discrete("x axis") +
scale_y_continuous("y axis", limits = c(0, 100)) +
scale_fill_manual("Legend",values = c("green","red"))+
scale_color_manual("Legend", values = c("red","green"))

enter image description here

关于r - 当一个图使用 ggplot 覆盖另一个图时如何制作自定义图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com