プロットの軸上の目盛りの間隔を変更するにはどうすればよいですか?
ベースプロットまたはrgl
で使用するパラメーターは何ですか?
ベースグラフでこれを達成するための少なくとも2つの方法があります(私の例はx軸用ですが、y軸でも同じように機能します) :
par(xaxp = c(x1, x2, n))
またはplot(..., xaxp = c(x1, x2, n))
を使用して、極端な目盛りの位置(x1
およびx2
)と目盛り間の間隔の数(n
)を定義します。 。したがって、n+1
は描画される目盛りの数です。 (これは、対数スケールを使用しない場合にのみ機能します。対数スケールでの動作については、?par
を参照してください。)
axis()
を使用して、軸の描画を完全に抑制し、後で目盛りを追加できます。
軸の描画を抑制するには、plot(... , xaxt = "n")
を使用します。
次に、side
、at
、およびlabels
でaxis()
を呼び出します:axis(side = 1, at = v1, labels = v2)
。 side
が軸の側を指し(1 = x軸、2 = y軸)、v1
は目盛りの位置を含むベクトルです(たとえば、c(1, 3, 5)
if軸の範囲は0から6で、3つのマークが必要です)、およびv2
は、指定された目盛りのラベルを含むベクトルです(v1
と同じ長さである必要があります。たとえば、c("group a", "group b", "group c")
)。 ?axis
および このメソッドの例については、stats.stackexchangeの投稿に対する更新された回答 を参照してください。
基本グラフィックスを使用する場合、最も簡単な方法は、プロット関数による軸の描画を停止してから自分で描画することです。
plot(1:10, 1:10, axes = FALSE)
axis(side = 1, at = c(1,5,10))
axis(side = 2, at = c(1,3,7,10))
box()
時間をx軸、強度をy軸として設定したデータがあります。最初に、軸のラベルを除くすべてのデフォルトの軸を削除する必要があります。
plot(Time,Intensity,axes=F)
次に、プロットの要素を再構築します。
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
したがって、at = c(...)
は、目盛りを付ける位置のコレクションを指定します。ここでは、0、100、200、...、1000にマークを付けたいと思います。seq(from =...,to =...,by =...)
は、制限と増分の選択を提供します。
また、Rで小数またはゼロを追加したくない場合は、... axtを使用してx軸またはy軸、またはその両方を描画しないようにすることができます。次に、独自の目盛りとラベルを追加できます。
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))
Hmisc パッケージを発見しました:
データ分析、高レベルのグラフィックス、ユーティリティ操作、サンプルサイズと消費電力の計算、データセットのインポートと注釈付け、欠損値の代入、高度なテーブル作成、変数クラスタリング、文字列操作、RオブジェクトのLaTeXへの変換に役立つ多くの関数が含まれていますHTMLコード、および変数の再コーディング。
library(Hmisc)
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th