2017-05-22 18 views
0

こんにちは、ggplot2でxのa番目の多項式のプロットを作成する簡単な関数を書いています。以下は、私のコードです:ggplot2の軸ラベルに文字と数値変数を混合する方法

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)を呼び出す午前言う、プロットは enter image description here

のように見えます。しかし、私は、Y軸ラベルが自動的にX^3に変更したいです。私はそれをすることができませんでした。私は

labs(y = "x"^a) 

を書くことを試みたが、私はエラーメッセージを取得しています。エラーを「×」^ Aに:私は数値変数と文字変数を配合していますとして期待されているバイナリ演算子、非数値引数。

PlotPower関数の中にggplot2のy軸ラベルを正しく記述すると、PlotPower関数を呼び出すときにy軸ラベルがx^aとなります.xは文字xですが、aは引数aの値

+1

この作業をする必要があります: 'ラボ(Y =解析(テキスト= paste0( "X ^"、A)))' –

+3

や 'Y = bquote(X ^〜。 (a)) '[経由](https://stackoverflow.com/questions/20005233/how-to-use-simultaneously-superscript-and-variable-in-a-axis-label-with-ggplot2) – lukeA

+1

'y = substitute(x^z、list(z = a))' – user20650

答えて

1

expressionbquoteに置き換えます。 .(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

+0

ありがとうございました。それは働いている。 –

+0

@BMisra、素晴らしい、もしあれば、このスレッドが閉じられるように回答/質問に回答しますか? –

関連する問題