2016-06-16 11 views
4

私は自分のカスタムx軸とy軸のプロットを作成しました。私はx軸を逆順(1-0で-.02)で表示したいと思います。私は数多くの記事とスレッドを読んだことがありますが、xlimとreverseの範囲を使うことを示唆していますが、それを機能させることができません。一度プロットすると、軸ラベルを百分率に100倍して変換しています(コードに表示されるように)。ここまで私がこれまで持っていたものがあります。値は100から始まり、20の増分0で終了するように、私は、X軸スケールを逆にするにはどうすればよいプロット内のx軸のスケールを逆転します

plot(roc.val, xlab = "Specificity (%)", ylab = "Sensitivity (%)", axes = FALSE) 
axis(2, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 
axis(1, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 

答えて

4

私は、これはy軸は逆の順序である、プロットを作成しますと思う:

x <- seq(-4, 4, length = 10) 
y <- exp(x)/(1 + exp(x)) 
plot(x,y, ylim = rev(range(y))) 

これは、軸の値を削除します。

x <- seq(-4, 4, length = 10) 
y <- exp(x)/(1 + exp(x)) 
plot(x,y, ylim = rev(range(y)), labels = FALSE) 

私はあなたが軸の値にあなたを割り当てることができますね

axis(2, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 
axis(1, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 
1
df <- data.frame(x=seq(0,1, length.out=50), y=seq(0, 1, length.out=50)) 
plot(df) 
:あなたのラインの変化に続いたいです同様の問題を解決するために、マーク・ミラーの答えを適応さ
df$x1 <- (max(df$x) - df$x)/ (max(df$x) - min(df$x)) 
plot(df$x1, df$y, axes=F, xlab = "Specificity (%)", ylab = "Sensitivity (%)") 
axis(2, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 
axis(1, at = seq(0,1,by=.2), labels = paste(100*seq(1,0, by=-.2)), tick = TRUE) 

enter image description here

0

enter image description here

は(私は解決策を探して、このトピックを見つけました)、私は https://tolstoy.newcastle.edu.au/R/help/05/03/0342.htmlに彼のソリューションの変化を発見しました。
基本的に、yim = rev(range(y))を使用する代わりに、プロットのX軸の値を逆にする場合は、xlim = rev(c(-4,4))を使用できます。

x <- seq(-4, 4, length = 10) 
y <- exp(x)/(1 + exp(x)) 
par(mfrow=c(1,2)) 
plot(x, y, ylim=range(y), xlim=c(-4, 4)) 
plot(x, y, ylim=range(y), xlim=rev(c(-4, 4))) 

plot1

そして、あなたは真のために、x軸の値を保持したい場合は、これを使用することができます:私はこれを掲示しています

par(mfrow=c(1,1)) 
plot(x, y, ylim=range(y), xlim=c(-4, 4), axes=FALSE) 
par(new=TRUE) 
plot(-100, -100, ylim=range(y), xlim=c(-4, 4), axes=FALSE, xlab="", ylab="", main="") 
axis(1, at = seq(-4,4,by=1), labels = seq(-4,4,by=1), tick = TRUE) 
axis(2, at = seq(0,1,by=.2), labels = paste(100*seq(0,1, by=.2)), tick = TRUE) 

plot2

なぜなら私の問題を解決するためには非常に簡単なことが必要だったからです。そして、それに対する解決策は、X軸の値を正しい順序で(反転させずに)プロットする必要がありました。

関連する問題