10

私はプロット1を持っています

curve(exp(x), from=1, to=5, lwd=5)
curve(150-exp(x), from=1, to=5, lwd=5, col="darkblue",add=T)

その中に次のプロット2を追加したいと思います

par(mar=c(7,7,1,1))
curve(exp(x), from=1, to=5, lwd=7, xlab="chi", ylab="exp(x)", cex.lab=4,axes=F)
axis(1, labels=NA,at=c(0,5))
axis(2, labels=NA,at=c(0,150))
text(1,120,"Alpha",adj=c(0,0),cex=3)
text(3.5,10,"Beta",adj=c(0,0),cex=3)

以下を取得するために

組み合わせた

また、プロット 2 を透明にして、プロット 1 の要素がプロット 2 の背後にある場合でも表示されるようにしたいと思います (青い線のように)。また、プロット 2 のラベルが大きく、軸にラベルと目盛りがないことも重要です。

これは可能ですか?ベース R ソリューションのみを使用してください (ggplot2 なし / ラティスなし)

4

2 に答える 2

17

OK、ここに例を示します。これを 10 x 10 インチの pdf にプロットしました。( et al. を使用する際の不満の一部par(fig = )は、それらの効果がプロッティング デバイスのサイズに大きく依存することです。)


いくつかの説明を追加するために編集されました:

基本グラフィック プロット パラメーターpar("fig")は、"描画領域" (単一の Figure プロットの場合、通常はデバイス全体) の比率として、Figure 領域の位置を記述/設定します。とc(xmin, xmax, ymin, ymax)の間の数値 (比率) で構成される形式の長さ 4 のベクトルを取ります。01

ここでは、 と を使用grconvertX()して、より大きなプロット自体の (別名) 座標系grconvertY()で表された xy 位置を(正規化されたデバイス座標) 座標系に変換します。座標系はより人間にとって使いやすいものであり、は (上記の注意事項を含む) で使用される座標系です。呼び出しは、それらの間の変換を実行するためだけに存在します。"user""ndc""user""ndc"par("fig")grconvert*()

## pdf("fig-in-fig.pdf", width=10, height=10)
curve(exp(x), from=1, to=5, lwd=5)
curve(150-exp(x), from=1, to=5, lwd=5, col="darkblue",add=T)

## Here's the bit I added.
par(fig = c(grconvertX(c(1, 3), from="user", to="ndc"),
            grconvertY(c(50, 125), from="user", to="ndc")),
    mar = c(4,6,1,1),
    new = TRUE)

curve(exp(x), from=1, to=5, lwd=7, xlab="chi", ylab="exp(x)", cex.lab=4,axes=F)
axis(1, labels=NA,at=c(0,5))
axis(2, labels=NA,at=c(0,150))
text(1,120,"Alpha",adj=c(0,0),cex=3)
text(3.5,10,"Beta",adj=c(0,0),cex=3)
## dev.off()

ここに画像の説明を入力

于 2013-01-12T00:58:32.380 に答える
7

1 つのアプローチを次に示します。

curve(exp(x), from=1, to=5, lwd=5)
curve(150-exp(x), from=1, to=5, lwd=5, col="darkblue",add=T)
par(new=TRUE)
par(oma=c(1,4,5,1))
par(mfcol=c(2,2), mfg=c(1,1))
par(mar=c(7,7,1,1))
curve(exp(x), from=1, to=5, lwd=7, xlab="chi", ylab="exp(x)", cex.lab=2,axes=F)
axis(1, labels=NA,at=c(0,5))
axis(2, labels=NA,at=c(0,150))
text(1,120,"Alpha",adj=c(0,0),cex=1.5)
text(4,10,"Beta",adj=c(0,0),cex=1.5)

私にこれを与えます:

ここに画像の説明を入力

さまざまなオプション (特にomamar) を試して、結果を好みに合わせてフォーマットします。

于 2013-01-11T23:58:18.513 に答える