R 如何在ggplot中使用aes中早期声明的变量,并使用特殊运算符(…count…,等等)

R 如何在ggplot中使用aes中早期声明的变量,并使用特殊运算符(…count…,等等),r,ggplot2,scope,R,Ggplot2,Scope,假设我想用以下公式绘制直方图(我知道这不是最好的,但它可以说明问题): 是否有一种方法可以同时使用.count..类变量和一些预定义变量 当您使用一些stat进行绘图(例如y=…count.)时,ggplot()函数似乎存在一些错误。函数ggplot()已经有environment变量,因此它可以使用在此函数外部定义的变量 例如,这将起作用,因为k仅用于更改x变量: k<-5 ggplot(dframe,aes(val/k,y=..count..))+geom_bar() 要解决此问题,

假设我想用以下公式绘制直方图(我知道这不是最好的,但它可以说明问题):


是否有一种方法可以同时使用
.count..
类变量和一些预定义变量

当您使用一些
stat
进行绘图(例如
y=…count.
)时,
ggplot()
函数似乎存在一些错误。函数
ggplot()
已经有
environment
变量,因此它可以使用在此函数外部定义的变量

例如,这将起作用,因为
k
仅用于更改
x
变量:

k<-5
ggplot(dframe,aes(val/k,y=..count..))+geom_bar()
要解决此问题,您可以在
aes()
中使用kefine
k


k@DidzisElferts这是我从来没有想到过的。我准备用
get
@kuba
p发布一个答案,老实说,我觉得有一个bug;ggplot()有一个
environment
参数,但当stat变量为used@baptiste这似乎是因为代码ggplot(dframe,aes(val/k,val))+geom_point()在没有problems@DidzisElferts在函数中调用ggplot()时,有时会发现作用域存在问题,但通常使用环境是可行的。这里没有。
k <- 5
p <- ggplot(dframe, aes(x=val, y=..count../k))
p + geom_bar()
Error in eval(expr, envir, enclos) : object 'k' not found
k<-5
ggplot(dframe,aes(val/k,y=..count..))+geom_bar()
k<-5
ggplot(dframe,aes(val,y=..count../k))+geom_bar()
Error in eval(expr, envir, enclos) : object 'k' not found
k <- 5
ggplot(dframe,aes(val,k=k,y=..count../k))+geom_bar()