ggplot - 如何组合来自不同 data.frames 的两个散点图并使用不同的颜色集来识别每个数据帧

ggplot - How can I combine two scatter plots from different data.frames and use distinct colorset to identify each dataframe

# df1
x = c(3, 5, 8, 2)
y = c(5, 4, 7, 9)
gender = c(1, 0 ,0, 1)
df1 = data.frame(x, y, gender)
        
# df2
x = c(1, 6, 4, 8, 3, 6)
y = c(2, 7, 8, 0, 2, 1)
gender = c(1, 0, 1, 0, 0, 1)
df2 = data.frame(x, y, gender)
    

我希望根据数据框和颜色按性别创建一个散点图 (x, y),使用不同的颜色来区分来自不同数据框的点。 例如 - 在 df1 中使用红色和浅红色表示性别,在 df2

中使用蓝色和浅蓝色表示性别

你可以试试这个,你肯定可以改变颜色:

library(ggplot2)
library(patchwork)
#Plot 1
G1 <- ggplot(df1,aes(x=x,y=y,color=factor(gender)))+geom_point()+
  scale_color_manual(values=c('red','deeppink'))
#Plot 1
G2 <- ggplot(df2,aes(x=x,y=y,color=factor(gender)))+geom_point()+
  scale_color_manual(values=c('blue','darkviolet'))
#Combine
G1+G2

更新

您可以根据需要将所有内容集中在一个图中:

#Code
df1$id <- 'df1'
df2$id <- 'df2'
df <- rbind(df1,df2)

ggplot(df,aes(x=x,y=y,color=factor(interaction(id,gender))))+geom_point()+
  scale_color_manual(values=c('red','deeppink','blue','darkviolet'))