【发布时间】:2017-05-22 22:26:37
【问题描述】:
您好,我编写了一个简单的函数来绘制 ggplot2 中 x 的第一个多项式图。以下是我的代码:
PlotPower <- function(x,a){
y <- x^a
dat <- data.frame(x,y)
f <- function(x) x^a
ggplot(dat,aes(x,y)) + geom_point() + stat_function(fun = f, colour = "red") +
scale_x_continuous(breaks = pretty(dat$x, n = 10)) +
scale_y_continuous(breaks = pretty(dat$y, n = 10)) +
labs(x = "x", y = expression(x^a), title = "Polynomial plot of x")
}
现在说我正在调用 PlotPower(1:10,3),情节看起来像
但我希望 y 轴标签自动变为 x^3。我无法做到这一点。我试着写了
labs(y = "x"^a)
但我收到错误消息:“x”^a 中的错误:二进制运算符的非数字参数,这是预期的,因为我将字符变量与数字变量混合。
请帮助我在我的 PlotPower 函数中正确编写 ggplot2 y 轴标签,这样无论我调用 PlotPower 函数的什么“a”,我都会将 y 轴标签作为 x^a,其中 x 是字符 x,但 a 是参数 a 的值。
【问题讨论】:
-
为了您的目的,这应该可以工作:
labs(y = parse(text=paste0("x^",a))) -
或
y = bquote(x^~.(a))via. -
y = substitute(x^z, list(z=a)) -
非常感谢,您的建议正在奏效。