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

R 使用ggplot2有条件地环绕数据图,r,plot,ggplot2,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() 库(ggplot2) df 40))+geom_点() 我的问题是:我应该如何画一条连接数据点的连续线,以及如何围绕用户>40的数据点旋

关于使用
ggplot2
绘图,我有几个问题。 我已经使用了下面的命令来使用R为数据点着色

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

我的问题是:我应该如何画一条连接数据点的连续线,以及如何围绕
用户>40
的数据点旋转?

要连接这些点,请使用
geom_line
(如果这不能满足您的需要,请解释您试图实现的目标)

我没有使用
geom_Encrocle
,但另一个选项是使用填充标记并删除填充来创建圆。以下是一个示例,使用内置的
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
以移除填充<代码>笔划设置圆边框的厚度

更新:使用上述示例向此图表添加一条线:

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
的初始调用中,那么您还需要在
geom\u线
中包含
aes
语句。

要连接点,请使用
geom\u线
(如果这还不能满足你的需要,请解释一下你想要实现的目标)

我没有使用
geom_Encrocle
,但另一个选项是使用填充标记并删除填充来创建圆。下面是一个示例,使用内置的
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
设置圆边界的厚度

更新:使用上述示例向此图表添加一条线:

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
的初始调用中,然后您还需要在
geom\u行
中包含
aes
语句。

我们可以从Github版本的
ggalt
包中获得可复制的示例吗可能会有帮助:我们能得到可复制的示例吗?
ggalt
软件包的Github版本中的
geom_enclude
可能会有帮助:非常感谢您的快速回复。我已经尝试了以下命令。ggplot(df)+geom_point(aes(df$Time,df$Users))+geom_point(data=df[df$Users>20],aes(df$Time,df$Users),pch=21,fill=NA,size=4,color=“red”,stroke=1)。但是,最后出现了这个错误“error in
[.data.frame
(df,df$Users>20):未定义的列被选中”。在CSV文件中,Users列在那里,我可以生成没有条件的图形,data=df[df$Users>20]。您遗漏了一个逗号。它应该是
data=df[df$Users>20,]
。在数据帧的
df[,]
表示法中,逗号前的表达式表示行选择;逗号后的表达式表示列选择(如果逗号后没有任何内容,则包括所有列)。但是如果您输入的表达式中没有逗号(如在代码中),R假定这表示列选择(因为数据帧是一种特殊的
列表
,这是选择
列表
元素的一种方法)。
df$Users>20
生成的逻辑向量比数据中的列数长。这会产生错误,因为它引用的列不存在。此外,
geom_点(aes(df$Time,df$Users))
应该是
geom_点(aes(Time,Users))
和其他geom一样。不要在
aes
中重复数据帧名称。数据帧要么在数据参数中进入geom,例如
geom_点(data=df,aes(Time,Users))
要么在最初调用ggplot时进入ggplot,例如
ggplot(df)
ggplot(df,aes(Time,Users))
。我们要求回答的原因之一(正如@BenBolker在对您的问题的评论中所做的那样)通过让我们准确地了解您的问题并提供针对您的具体问题和背景定制的代码,可以节省时间。这避免了在答案必须使用不同的数据或代码时经常需要的所有来回提问,因为没有可复制的示例可供使用。非常感谢您的快速回复。我没有按如下方式执行命令。ggplot(df)+geom_point(aes(df$Time,df$Users))+geom_point(data=df[df$Users>20],aes(df$Time,df$Users),pch=21,fill=NA,size=4,color=“red”,stroke=1)。但是,最后出现了这个错误“error in
[.data.frame
(df,df$Users>20):未定义的列被选中”。在CSV文件中,用户列在那里,我可以生成没有条件的图形,data=df[df$Users>20]。您缺少了一个逗号。它应该是
data=df[df$Users>20,]
。在数据帧的
df[,]
符号中,逗号前的表达式表示行选择;逗号后的表达式表示列选择(如果逗号后没有任何内容,则所有列都包括在内)。但是如果您输入了一个不带逗号的表达式(如在代码中),R会假定这是指列选择(因为数据框是一种特殊的
列表
,这是选择
列表
元素的一种方法).
df$Users>20
生成的逻辑向量大于数据中的列数。这会产生错误,因为它引用的列不存在。此外,
geom_点(aes(df$Time,df$Users))
应该是
geom_点(aes(Time,Users))
和其他几何图形相同。不要在aes中重复数据帧名称。
aes
。数据帧在数据框中