我遇到了 R、ggplot2 的问题。我使用facet来指示数据的特征“齿轮”,然后对于y轴特征,我想使用两种类型的图例。但我的代码仅显示一种类型(第 1 层)数据的图例。
* 我希望 data2 使用彩色圆点,data1 使用黑色 * (shape=4
)。
请帮忙。谢谢。
data1 <- subset(mtcars, carb==4)
data2 <- subset(mtcars, !carb==4)
ggplot(mapping = aes(x = mpg, y = wt, color= carb)) +
geom_point(data=data2, mapping = aes(x = mpg, y = wt, color= carb), size=0.2) +
facet_wrap(~ gear, nrow = 1) +
labs(y='wt value', x= "mpg type") +
geom_point(data=data1, color = "black", shape=4, size=0.7, mapping=aes(x = mpg, y = wt, color= carb)) +
facet_wrap(~ gear, nrow = 1)
最佳答案
需要做一些小的改变。您不能像这样使用 2 个facet
。
查看下面的代码。您可以将 carb 作为 data2
中的一个因素,这将为您提供彩色点和图例。如果这就是您所寻找的,您会发现上述几点的差异。
PS:我稍微放大了点的大小。
library(ggplot2)
data <- mtcars
data1 <- subset(data, carb==4)
data2 <- subset(data, !carb==4)
ggplot(mapping = aes(x = mpg, y = wt, color= carb)) +
geom_point(data=data2, mapping = aes(x = mpg, y = wt, color= factor(carb)), size=4) +
geom_point(data=data1, mapping=aes(x = mpg, y = wt), shape =4, size=8, color= 'black') +
facet_wrap(~ gear, nrow = 1) +
theme_bw() +
labs(y='wt value', x= "mpg type")
由reprex package于2020年2月3日创建(v0.3.0)
library(ggplot2)
data <- mtcars
data1 <- subset(data, carb==4)
data2 <- subset(data, !carb==4)
ggplot(mapping = aes(x = mpg, y = wt, color= carb)) +
geom_point(data=data2, mapping = aes(x = mpg, y = wt, color= factor(carb)), size=4) +
geom_point(data=data1, mapping=aes(x = mpg, y = wt, shape = factor(carb)), size=8, color= 'black') +
scale_shape_manual(values = c(4))+
facet_wrap(~ gear, nrow = 1) +
labs(shape = '')+
#scale_color_discrete(guide = FALSE)+
theme_bw() +
labs(y='wt value', x= "mpg type")
由reprex package于2020年2月3日创建(v0.3.0)
我将形状带回到 data1 的美学中,但随后通过 labs(shape = '')
关闭了它的标题。通过添加 scale_shape_manual(values = c(4))
来定义形状。
因为我不确定,如果您想要第一个图例,我已将 #scale_color_discrete(guide = FALSE)
放入代码中,但对其进行了注释。您可以删除注释并完全删除第一个图例。
关于r - 图例仅显示一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60033702/