67

Rでプロットを作成していますが、x軸の値がRでプロットされるのが好きではありません。

例えば:

x <- seq(10,200,10)
y <- runif(x)

plot(x,y)

これにより、X軸に次の値のグラフがプロットされます。

50, 100, 150, 200

10,20, 30 ... 200ただし、変数xに格納されている20個の値をX軸の値としてプロットしたいと思います。私は数え切れないほどのブログと簡潔なマニュアルを精査しました-何時間も検索した後、私が有用なものを見つけるのに最も近いのは次の(要約された)指示です:

  1. 呼び出しplot()またはpar()、引数を指定xaxt='n'
  2. axis()例を呼び出すaxis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)

試してみましたが、結果のプロットにはx軸の値がまったくありませんでした。誰かがこれを行う方法を知っている可能性はありますか?これまで誰もこれを試みたことがないなんて信じられません。

4

4 に答える 4

100

質問に対する回答は、のヘルプページにあり?axisます。

データで変更されたヘルプページの例の1つを次に示します。

オプション1:xaxp軸ラベルを定義するために使用

plot(x,y, xaxt="n")
axis(1, xaxp=c(10, 200, 19), las=2)

オプション2:とを使用atseq()てラベルを定義します。

plot(x,y, xaxt="n")
axis(1, at = seq(10, 200, by = 10), las=2)

これらのオプションはどちらも同じグラフィックを生成します。

ここに画像の説明を入力してください


PS。ラベルの数が多いため、テキストをプロットに合わせるには、追加の引数を使用する必要があります。lasラベルを回転させるために使用します。

于 2012-08-02T10:54:33.187 に答える
6

?axisドキュメントをよく見てください。引数の説明を見ると、次のlabelsことがわかります。

"a logical value specifying whether (numerical) annotations are 
to be made at the tickmarks,"

したがって、trueに変更するだけで、目盛りラベルが表示されます。

x <- seq(10,200,10)
y <- runif(x)
plot(x,y,xaxt='n')
axis(side = 1, at = x,labels = T)
# Since TRUE is the default for labels, you can just use axis(side=1,at=x)

ウィンドウ幅を拡大しないと、Rがすべてのラベルを書き込めない可能性があることに注意してください。ウィンドウ幅を試してみると、私が何を意味するのかがわかります。


ドキュメントを見つけるのに苦労したのは残念です!あなたの検索用語は何でしたか?r axisGoogleに入力してみてください。最初に表示されるリンクは、前述のQuickRページです。「Axes」まで下にスクロールすると、その方法に関する非常に便利な小さなガイドが表示されます。プロットに関する質問がないか最初に確認する必要があります。SOの応答を待つよりも高速です。

于 2012-08-02T10:56:14.870 に答える
4

このコーディングがお役に立てば幸いです:)

plot(x,y,xaxt = 'n')

axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))
于 2017-03-13T11:22:19.323 に答える
0

時系列をプロットする場合、コマンドには次ts.plotの引数とは異なる引数が必要です。xaxt="n"

require(graphics)
ts.plot(ldeaths, mdeaths, xlab="year", ylab="deaths", lty=c(1:2), gpars=list(xaxt="n"))
axis(1, at = seq(1974, 1980, by = 2))
于 2018-03-25T07:11:15.467 に答える