2017-10-10 3 views
0

に軸への変換を逆にして適用するために、例えばggplot2パッケージの使用、で構成、例えば1:R:方法同時にプロットでggplot2

ggplot(cars, aes(x = speed, y = dist))+geom_col() 

軸は適切な指示を適用することによって変換することができます。 。たとえば、+scale_y_continuous(trans="reverse")は座標軸を上から下に描画し、scale_y_continuous(trans="sqrt")は非線形変換を行います。私は両方の関数を組み合わせる必要があります。つまり、軸の原点が上にあり、ログまたはsqrtの変換がy軸です。これはどのようにScale for 'y' is already present. Adding another scale for 'y', which will replace the existing scale.

答えて

1

require(scales); 
rev_sqrt_trans <- function() { 
    scales::trans_new(
     name = "rev_sqrt", 
     transform = function(x) -sqrt(abs(x)), 
     inverse = function(x) x^2); 
} 

require(ggplot2); 
ggplot(cars, aes(x = speed, y = dist)) + geom_col() + scale_y_continuous(trans = "rev_sqrt") 

新しい変換を定義するときには、休憩を最適化することができ、?trans_newを参照してください1(すなわち、+scale_y_reverse() ... + scale_y_log())による変換の1を適用すると、警告を与えます。

enter image description here

+0

このレシピの直接適用は、エラーを生じた:GETで エラー(as.character(FUN)、モード= "機能"、ENVIR = ENVIR):モードの オブジェクトのrev_sqrt_transは '関数'見つからなかった – astrsk

+0

ああ、謝罪!関数内に新しい変換をラップするのを忘れてしまった。今はうまくいくはずです。 –

関連する問題