6

私の問題は、R での出版物のグラフの作成に関するものです。次のようにプロット関数を使用しました。

plot(x=data$SL, y=data$BD, xlab = "SL (mm)", ylab = "BD (mm)", pch=data$pch)

SL は 51.7 から 73.7、BD は 13.5 から 20.4 の範囲です。残念ながら、私はまだ画像を投稿することを許可されていません。

ただし、ボックスを削除したい場合は、「axes=F」を使用しました。現在の問題は、軸機能を制御できないことです。私が使用した:

axis(side=1, lwd=3, xpd=TRUE, at=c(min(data$SL):max(data$SL)))
axis(side=2, lwd=3, xpd=TRUE, at=c(min(data$BD):max(data$BD)))

問題は、ボックスを使用したプロットのように、y 軸と x 軸を同じ点に合わせることができないことです。x 軸と y 軸を互いに接触させるにはどうすればよいですか?

4

3 に答える 3

5

ほとんどの場合、xaxs="i"およびyaxs="i"を設定すると、目的の動作を得るのに役立ちます。

plot(c(1,2,3),c(2,4,6),axes=F,xaxs = "i",yaxs="i",xlim=c(0,3),ylim=c(0,6))
axis(side=1, lwd=3, xpd=TRUE, at=0:3)
axis(side=2, lwd=3, xpd=TRUE, at=seq(0,6,2))
于 2012-06-04T11:38:49.130 に答える
5

box(bty='L')ボックスの左と下の部分だけを描くようにしてください。linesまた、、、segmentsまたはablineを使用して自分で線を描画し、関数を使用して線を描画する場所を見つけることもgrconvertXできgrconvertYます。

于 2012-06-04T15:36:08.300 に答える
1

概説した手順に従ってから、次を使用することをお勧めします。

box(which = "plot", bty = "l")

例えば:

plot.new()
plot.window(xlim = c(1, 18), ylim = c(2, 20))
points(1:18, 2:19, pch = 1, col = "#FF7F24", cex = 1.2)
lines(1:18,  2:19, col = "#FF7F24", lwd = 2)
axis(side      = 1,
     lwd       = 0,
     lwd.ticks = 1,
     at        = 1:18,
     cex.axis = 0.9)
title(main = "Plot",
      ylab = "Y-Axis")
legend("top",
       legend = c("Legend"),
       col = c("#FF7F24"),
       text.col = c("#FF7F24"),
       pch    = 1,
       bty    = "n",
       cex    = 1.2)
axis(side      = 2,
     lwd       = 0,
     lwd.ticks = 1)
box(which = "plot", bty = "l")

への呼び出しによって一部がオーバーレイされ、一部がオーバーレイされないため、軸の一部が軸の他の部分よりも太く見えるのを防ぐために、オプションlwd = 0lwd.ticks = 1を別の呼び出しに渡す必要があります。axis()box()

最後に使用するソリューションは、たとえばor呼び出しを渡すことができない、box()または渡したくないときに使用できるという点で、より一般的だと思います。bty = "l"plot.defaultplot.window

于 2014-10-24T13:08:37.800 に答える