【发布时间】:2016-12-24 04:57:42
【问题描述】:
这是一个直接涉及该主题的增量问题:
How do I loop through column names and make a ggplot scatteplot for each one
我想遍历列名并为每个列创建一个 ggplot 散点图,但我想每次添加一条横线,其截距取决于列中的值。
所以我采用该代码:
Y <- rnorm(100)
df <- data.frame(A = rnorm(100), B = runif(100), C = rlnorm(100),
Y = Y)
colNames <- names(df)[1:3]
for(i in colNames){
plt <- ggplot(df, aes_string(x=i, y = Y)) +
geom_point(color="#B20000", size=4, alpha=0.5) +
geom_hline(yintercept=0, size=0.06, color="black") +
geom_smooth(method=lm, alpha=0.25, color="black", fill="black")
print(plt)
Sys.sleep(2)
}
我用 x 切换 y
aes_string(x=Y, y = i))
我想修改那行
geom_hline(yintercept=0, size=0.06, color="black")
...所以 yintercept 不是常数,而是取决于 i, 例如:
geom_hline(yintercept=c(quantile(i, 0.25)))
所以 yintercept 始终是我的专栏的第一个四分位数。
但是,它不起作用:
(1 - h) * qs[i] 中的错误: 二元运算符的非数字参数
我尝试了不同的选项,例如 aes_string、paste() 等 但这些都不起作用。
但是,它不起作用: (1 - h) * qs[i] 中的错误: 二元运算符的非数字参数
我尝试了不同的选项,例如 aes_string、paste() 等 但这些都不起作用。
【问题讨论】:
-
试试
quantile(df[,i], 0.25)
标签: r ggplot2 geom-hline