2017-04-05 15 views
2

ggplot2では、プライマリ軸の1対1の変換である場合、セカンダリのy軸を追加できるようになりました。ggplot sec_axisを使用してzスコアを表示するセカンダリy軸

私のグラフでは、元の単位を左のy軸にプロットしたいと思いますが、z軸は右のy軸にプロットしたいと思いますが、実際にこれを行う方法は問題があります。

documentationこの二次軸はsec_axis()関数を使用して追加された示唆例えば、

scale_y_continuous(sec.axis = sec_axis(~.+10)) 

は、最初よりも10単位高い第2のY軸を作成します。

Z-スコアcan be created in R using the scale() function。だから私は、私はzスコアを表示する第2のY軸を取得するには、このような何かを行うことができます仮定:

scale_y_continuous(sec.axis = sec_axis(scale(~.))) 

しかし、これは「最初の引数が無効です」エラーを返します。

誰でもこの作品を作成する方法はありますか?

+0

私はそれは〜規模 ''だと思います – aosmith

答えて

0

z-score変換式を使用できます。これがうまく機能:

library(tidyverse) 
library(scales) 
df <- data.frame(val = c(1:30), var = rnorm(30, 10,2)) 
p <- ggplot() + geom_line(data = df, aes(x = val, y = var)) 
p <- p + scale_y_continuous("variable", sec.axis = sec_axis(trans = ~./ sd(df$var) - mean(df$var)/ sd(df$var), "standarized variable")) 
p 

または:(。)

p + scale_y_continuous("variable", sec.axis = sec_axis(~ scale(.), "standarized variable")) 

enter image description here

関連する問題