gpt4 book ai didi

r - ggplot 中的双点

转载 作者:行者123 更新时间:2023-12-03 10:27:36 25 4
gpt4 key购买 nike

我找不到密度周围双点的文档

set.seed(1234)
df <- data.frame(cond = factor(rep(c("A","B"), each=200)), rating = c(rnorm(200),rnorm(200, mean=.8)))
print(head(df))
print(ggplot(df, aes(x=rating)) +
geom_histogram(aes(y=..density..), # Histogram with density instead of count on y-axis
binwidth=.5,
colour="black", fill="white") +
geom_density(alpha=.2, fill="#FF6666") +
geom_vline(aes(xintercept=mean(rating, na.rm=T)), # Ignore NA values for mean
color="red", linetype="dashed", size=1))

你知道他们代表什么运营商吗?

编辑

我知道它在 geom 中的作用,我想知道它是什么。
例如,单点运算符定义为
> .
function (..., .env = parent.frame())
{
structure(as.list(match.call()[-1]), env = .env, class = "quoted")
}
<environment: namespace:plyr>

如果我重新定义密度,那么 ..density.. 有不同的效果,所以看起来 XX -> ..XX.. 是一个运算符。我想知道它是如何定义的。

最佳答案

与许多其他语言不同,在 R 中,点在标识符中完全有效。在这种情况下,..count..是一个标识符。但是,ggplot2中有特殊代码检测这种模式,并剥离点。感觉真正的代码不太可能使用这种格式的标识符,因此这是一种区分定义和计算美学的巧妙方法。

相关代码在layer.r末尾:

# Determine if aesthetic is calculated
is_calculated_aes <- function(aesthetics) {
match <- "\\.\\.([a-zA-z._]+)\\.\\."
stats <- rep(FALSE, length(aesthetics))
grepl(match, sapply(aesthetics, deparse))
}

# Strip dots from expressions
strip_dots <- function(aesthetics) {
match <- "\\.\\.([a-zA-z._]+)\\.\\."
strings <- lapply(aesthetics, deparse)
strings <- lapply(strings, gsub, pattern = match, replacement = "\\1")
lapply(strings, function(x) parse(text = x)[[1]])
}

它在上面的 map_statistic 中进一步使用功能。如果计算出的美学存在,另一个数据框(一个包含例如 count 列)用于绘图。

单点 .只是另一个标识符,定义在 plyr 中包裹。如您所见,它是一个函数。

关于r - ggplot 中的双点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com