根据两个条件填充geom_point():基于列值,或者如果value为0

时间:2019-02-14 07:32:00

标签: r ggplot2

我知道如何用点根据某些变量确定大小的图形:

ggplot(df, aes(x, y)) + 
  geom_point(aes(size = value))

如何添加条件,如果0中有value,则该点为灰色或轮廓?

1 个答案:

答案 0 :(得分:1)

value之后建立一个新变量。此新变量将采用两个值(0,1)。将其用作aes()的{​​{1}}。

这里有个例子:

color

首先根据您的需求创建library(ggplot2) library(dplyr)

new_var

使用# new_var is 0 if wt>5, otherwise is 1 mtcars <- mtcars %>% mutate(new_var = ifelse(wt>5, 0, 1)) #mutate(new_var = ifelse(value==0, 0, 1)) # in your case do this instead 作为新的美学作图:

new_var

enter image description here

当然,您可以稍后删除第二个图例并进行其他改进。


另一个示例,具有不同的ggplot(mtcars, aes(x=mpg, y=wt)) + geom_point(aes(size=wt, color = as.factor(new_var))) + # add as.factor() to color accordingly scale_color_manual(values=c("gray", "black")) # custom coloring the points #+ guides(color=FALSE) # this removes the color legend

shape

enter image description here