【发布时间】:2018-11-01 22:15:59
【问题描述】:
我正在尝试在 R 中绘制一个数学函数。 我试图从以下网站重新创建代码: https://rpubs.com/kaz_yos/ggplot2-stat-function
这是我的代码:
a <- 1;
b <- 1;
p <- ggplot(data = data.frame(x = 0), mapping = aes(x = x))
brem_nosc <- function(x) (1 + x^2 - (2*x/3))*(log(x) - (1/2))
p + layer(geom = "path", # Default. Can be omitted.
stat = "function",
fun = brem_nosc, # Give function
mapping = aes(color = "fun.1") # Give a meaningful name to color
) +
scale_x_continuous(limits = c(-5,5)) +
scale_color_manual(name = "Function", values = c("blue"))
但是我收到以下错误:
Error in layer(geom = "path", stat = "function", fun = brem_nosc, mapping = aes(color = "fun.1")) :
unused argument (fun = brem_nosc)
我无法弄清楚为什么该功能没有被识别。可能是什么问题? 感谢阅读
【问题讨论】:
-
文档 (
?ggplot2::layer) 不建议参数fun=。它确实说如果data=是function,当它被称为 " 带有单个参数时,绘图数据。返回值必须是'data.frame。',并将用作图层数据。” 对我来说,这表明您的brem_nosc应该返回一个帧。 (除非我误解了您的需求或layer。)(仅供参考:ggplot2-3.0.0) -
@r2evans 我已将函数转换为数据帧并应用了 ggplot。谢谢!
-
我在这里rpubs.com/kaz_yos/ggplot2-stat-function 找到了这个有趣的论点,我无法复制它。如果有关于这个问题的代码解决方案,那就太好了。