您好我已经编写了一个简单的函数来绘制ggplot2中第x个多项式的图。以下是我的代码:
labs(y = "x"^a)
现在说我打电话给PlotPower(1:10,3),情节看起来像
但是我希望y轴标签自动变成x ^ 3。我无法做到这一点。我试着写
CMD ["bash"]
但是我收到错误消息:“x”中的错误^ a:二元运算符的非数字参数,这是我预期的,因为我将字符变量与数值变量混合。
请帮我在PlotPower函数中正确编写ggplot2 y轴标签,这样无论使用什么“a”我调用PlotPower函数,我都得到y轴标签为x ^ a,其中x是字符x但是a是论证的价值a。
答案 0 :(得分:1)
将expression
替换为bquote
。 .(a)
内的变量是被替换的变量。对于更多变体 - 比如评论中提到的变体 - 请查看此answer。
PlotPower <- function(x,a){
y <- x^a
dat <- data.frame(x,y)
ylab = paste("x", a, sep='^')
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 = bquote(x^.(a)), title = "Polynomial plot of x")
}