使用ggplot2有条件地围绕数据图循环

时间:2016-07-15 00:26:42

标签: r plot ggplot2

我有几个关于使用ggplot2绘图的问题。 我已经使用以下命令使用R

为数据点着色
library(ggplot2)
df <- read.csv(file="c:\\query2.csv")
ggplot( df,aes( x = Time,y ,y = users,colour = users>40) ) +  geom_point()

我的问题是:如何绘制连接数据点的连续线以及如何围绕users >40的数据点?

1 个答案:

答案 0 :(得分:3)

要连接这些积分,请使用geom_line(如果那不能满足您的需求,请说明您要完成的工作)。

我还没有使用geom_encircle,但另一种选择是使用已填充的标记并删除填充以创建圆圈。以下是一个示例,使用内置的mtcars数据框进行说明:

ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() +
  geom_point(data=mtcars[mtcars$mpg>30,],
             pch=21, fill=NA, size=4, colour="red", stroke=1) +
  theme_bw()

pch=21是填充标记之一(有关其他可用点标记的详细信息,请参阅?pch)。我们设置fill=NA以删除填充。 stroke设置圆边框的粗细。

enter image description here

更新:要使用上面的示例向此图表添加一行:

ggplot(mtcars, aes(wt, mpg)) + 
  geom_line() +
  geom_point() +
  geom_point(data=mtcars[mtcars$mpg>30,],
             pch=21, fill=NA, size=4, colour="red", stroke=1) +
  theme_bw()

但是,如果(在我的原始代码中),您将aes语句放在geom内,而不是在ggplot的初始调用中,那么您需要在aes中也包含geom_line语句。