如何在ggplot2的轴标签中混合字符和数字变量

时间:2017-05-22 22:26:38

标签: r function ggplot2

您好我已经编写了一个简单的函数来绘制ggplot2中第x个多项式的图。以下是我的代码:

labs(y = "x"^a)

现在说我打电话给PlotPower(1:10,3),情节看起来像 enter image description here

但是我希望y轴标签自动变成x ^ 3。我无法做到这一点。我试着写

CMD ["bash"]

但是我收到错误消息:“x”中的错误^ a:二元运算符的非数字参数,这是我预期的,因为我将字符变量与数值变量混合。

请帮我在PlotPower函数中正确编写ggplot2 y轴标签,这样无论使用什么“a”我调用PlotPower函数,我都得到y轴标签为x ^ a,其中x是字符x但是a是论证的价值a。

1 个答案:

答案 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")
}

enter image description here