我知道如何用点根据某些变量确定大小的图形:
ggplot(df, aes(x, y)) +
geom_point(aes(size = value))
如何添加条件,如果0
中有value
,则该点为灰色或轮廓?
答案 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
当然,您可以稍后删除第二个图例并进行其他改进。
另一个示例,具有不同的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