r - 图例仅显示一层

标签 r ggplot2

enter image description here

我遇到了 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/

相关文章:

r - 不理解..密度的行为

r - 使用ggplot添加动态字幕

testing - 无法安装ggp​​lot

r - ggplot回归线的单独图例

使用 R/ggplot 复制数据可视化

c++ - 在 C++ 中使用 Rcpp header

r - 检查数据框本身是否为 NA

R - 并行运行时获取工作人员名称

R dplyr : join within pipe

使用非法 EOL 标记读取巨大的 csv 文件