7

y軸が0〜2.6の範囲内でステップサイズ0.2にカスタマイズされ、x軸が自動定義できる散布図をプロットしたいと思います。以下を試してみましたが、うまくいきません。パラメータを正しく設定する方法を教えてください。


# Read data
pt.n <- read.table("p0_n300m20r1c1_regression.txt", header=T)
# auto-scale
# plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#1,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #")

# customize
ylabel <- c(0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6)
y_range <- range(0, ylabel)
plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#3,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #", ylim=y_range, axes=FALSE, ann=FALSE)
axis(1, at=0:6, lab=c(0,50,100,150,200,250,300))
axis(2, las=1, at=0.2*0:y_range[1])
box()
4

1 に答える 1

5

何かが機能していない場合は、正しいデータを提供していて、ブーブーをしていないことを確認したいことをしていないことの各ビットを確認してください。軸に関連付けられているコードのビットを実行すると、

ylabel <- c(0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6)
y_range <- range(0, ylabel)
0.2*0:y_range[1]

問題はすぐにわかります。

R> 0.2*0:y_range[1]
[1] 0

ここで、基本的に R に 0 でティックを描画するように指示しています。正しい要素y_range(最大値は2 番目の要素にあります) を選択したとしても、正しい答えは得られません。

R> 0.2*0:y_range[2]
[1] 0.0 0.2 0.4
R> 0:y_range[2]
[1] 0 1 2

それは:オペレーターの働き方によるものです。の呼び出しx:yは本質的にseq(from = x, to = y, by = 1)and の呼び出しです。これは、 (引数)2.6+1より大きいため、R はシーケンス を作成します。2.6to0, 1, 2

目盛りとラベルを 0 ~ 2.6 の範囲で 0.2 ずつ増やしたい場合は、次を使用します。

ylabel <- seq(0, 2.6, by = 0.2)
axis(2, at = ylabel)

現在含まれている場所ylabel:

R> ylabel
[1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6

説明する:

dat <- data.frame(y = runif(20, min = 0, max = 3),
                  x = rnorm(20))

plot(y ~ x, data = dat, axes = FALSE)
ylabel <- seq(0, 2.6, by = 0.2)
axis(1)
axis(2, at = ylabel, las = 1)
box()

生産する

ここに画像の説明を入力

于 2012-09-28T07:45:41.357 に答える