10
ggplot2を別の関数にラップする必要があります。受け入れられるのと同じ方法で変数を解析できるようにするために、正しい方向に私を導くことができます。ラッパーでggplotに引数を渡す
たとえば、以下のMWEを考慮します。
#Load Required libraries.
library(ggplot2)
##My Wrapper Function.
mywrapper <- function(data,xcol,ycol,colorVar){
writeLines("This is my wrapper")
plot <- ggplot(data=data,aes(x=xcol,y=ycol,color=colorVar)) + geom_point()
print(plot)
return(plot)
}
ダミーデータ:
##Demo Data
myData <- data.frame(x=0,y=0,c="Color Series")
手間をかけずに実行し、既存の使用法:
##Example of Original Function Usage, which executes as expected
plot <- ggplot(data=myData,aes(x=x,y=y,color=c)) + geom_point()
print(plot)
客観的用法構文:
##Example of Intended Usage, which Throws Error ----- "object 'xcol' not found"
mywrapper(data=myData,xcol=x,ycol=y,colorVar=c)
上記は、ggplot2パッケージの「オリジナル」使用の例と、別の関数でどのようにまとめたいかを示しています。ただし、ラッパーはエラーをスローします。
私は、これは他の多くのアプリケーションに適用されると確信している、そしてそれはおそらく千回に答えてきた、しかし、私はここでの問題は、そのggplotであるR.
ありがとう、aes_stringオプションがあることを知らなかったが、 '名前'を渡す方法がない、つまり、ggplot2関数が引数の意味をどのように知っているかを示している。 –
オブジェクトの名前を取得する方法はありますが、ggplot2は 'aes'のフードの中でそれを使用しますが、このような引数を渡すためには' aes_string'がはるかに簡単です。 –
こんにちは、これは非常に便利な答えです。私はヒストグラムのラッパーを開発するためにこのソリューションを使用しています。しかし、私のコードでは、 'geom_vline(aes(xintercept = mean(histogramVariable))、color = 'red''という中央値ラインを生成するコードがあります。 – Konrad