我融合了两个数据集。我想画
df <-structure(list(test = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "D", class = "factor"),
N = 1:15, value = c(0.193333333333333, 0.166666666666667,
0.226666666666667, 0.233333333333333, 0.246666666666667,
0.113333333333333, 0.14, 0.126666666666667, 0.233333333333333,
0.206666666666667, 0.14, 0.26, 0.213333333333333, 0.206666666666667,
0.22)), row.names = c(NA, 15L), class = "data.frame")
我的df2是
df2 <- structure(list(test = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), N = 1:15, value = c(0.00734658620417139,
0.0310075916430482, 0.000899636750923194, 0.000567925967793537,
0.000217454812833306, 0.290391297453855, 0.105715835833684, 0.180098464605175,
0.000567925967793537, 0.00330103411768823, 0.105715835833684,
7.89376056511415e-05, 0.00216893397611406, 0.00330103411768823,
0.00140621607072411)), row.names = c(NA, 15L), class = "data.frame")
我这样绘制df
qplot(data = df, x = value,y = N,color=N)+geom_point()
我要绘制那些在df中的值小于0.13并且在df2中其相应的值小于0.5的红色的图形。
例如,在这种情况下,查看两个数据中的N(数字6),df值为0.11,而df2中的值为2.903913e-01(小于0.5),所以,我希望将其着色为红色。
我不在乎您是否使用 qplot
以外的其他方式答案 0 :(得分:2)
这是一个选项。本质上,您必须创建一个类别变量,以后可以在ggplot中使用它来指定点的颜色。
# join data frames to facilitate comparison of values:
dfComb <- full_join(df, df2, by = c("N"))
dfComb %>%
mutate(
colorVar = case_when( # categorize data points based on your logic (if_else would also be nice)
value.x < .13 & value.y < .5 ~ "red",
TRUE ~ "not red"
)
) %>% # pipe dataset into ggplot...
ggplot() +
geom_point( # the aesthetics here match your qplot
aes(value.x, N, color = colorVar)
) +
scale_color_manual( # set colors manually to get red
values = c("blue", "red")
)
哪个会产生: