2017-06-08 12 views
1

plotrixパッケージで生成されたプロットはtwoordで、特定の値を表す水平線を追加したいと考えています。プロットはすべてセットアップされていますが、私はラインを追加する助けが必要です。ここで2行目のプロットに3行目を追加

は、いくつかのサンプルコードです:

fake <- matrix(c(1, 2, 3, 4, 5, 22, 30, 47, 98, 62, 20, 40, 10, 15, 15), nrow = 5) 
fake <- as.data.frame(m) 

horizontallineat <- 50 

twrd.p <- twoord.plot(fake$V1,fake$V3,fake$V1,fake$V2, xlab="Bin", 
        lylim=c(0,100),rylim=c(0,100),type=c("bar","l"), 
        ylab="Exposure Percentage",rylab="Bin Average PP", 
        lytickpos=seq(0,100, by = 10), 
        rytickpos=seq(0,100, by = 10), 
        ylab.at=50,rylab.at=50, 
        main="Variable Name", 
        lcol=3,rcol=4) 

これはプロット

enter image description here

であるあなたが提供することができます任意の洞察力のために事前にありがとうございます。

+1

@ d.b 'h = 50'ですか? – G5W

+0

残念ながら、それはアブラインほどシンプルではありません...私は考えることができるすべてを試しました。ドキュメントには次のように書かれています: "点や線を使ってもっと多くの値をプロットに追加することができますが、これらの は左の縦軸を基準にプロットされます。しかし、私はラインで運がなかった。 – heat763

答えて

0

これがあなたの望むものかどうかはわかりませんが、Rベースのlines機能を追加するだけで簡単に行えます。これは、次のプロット

短いか長い水平線を追加する

Your plot with 2 lines added

を生み出す

library(plotrix) # added library 

## your code 
fake <- matrix(c(1, 2, 3, 4, 5, 22, 30, 47, 98, 62, 20, 40, 10, 15, 15), nrow = 5) 
fake <- as.data.frame(fake) # changed "m" to "fake" 

twrd.p <- twoord.plot(fake$V1,fake$V3,fake$V1,fake$V2, xlab="Bin", 
         lylim=c(0,100),rylim=c(0,100),type=c("bar","l"), 
         ylab="Exposure Percentage",rylab="Bin Average PP", 
         lytickpos=seq(0,100, by = 10), 
         rytickpos=seq(0,100, by = 10), 
         ylab.at=50,rylab.at=50, 
         main="Variable Name", 
         lcol=3,rcol=4) 

## simple lines() function with x an y coordinates 
## we'll add 2 lines for fun 
## 1. dashed, thicker, and red 
## 2. dots, thicker and black 
lines(x = c(1, 2, 3, 4), y= c(40, 60, 40, 70), lty = 2, lwd = 2, col = "red") 
lines(x = c(1.25 , 4.75), y = c(95, 25), lty = 3, lwd=2, col = "black") 

にこの

のようなコードを使用すると、今シンプルでなければなりません、私は願っています。

これがあなたの頭にあるものかどうかを教えてください。

+0

この解決策は機能しました。ありがとうございました。唯一の注意点は、それが左の軸スケールに対して相対的にプロットするので、私はそれらをスワップする必要があったということです。 – heat763

+0

うれしい私は助けることができました!私はあなたのコメントを理解していませんが、私が見る限り、左右の軸スケールは同じです。 – KoenV

+0

これはサンプルデータでした...私の実際のデータは左右の軸上で同じ縮尺ではありません。 lines()は、左軸のスケールに対してプロットするだけなので、軸を入れ替えなければなりません。 – heat763

関連する問題