0

次のように、1つの配列とベクトルがあります-

v<-c(2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0)
result<-matrix(1,9,1000)

ここで、vi のすべての値に対して、結果マトリックスの行全体をプロットします。たとえば。vi の値 2.4 に対して、ポイント (2.4,result[1,1]),(2.4,result[1,2]),(2.4,result[1,3]) を (2.4,result[1, 1000])、

私がそれをしようとすると

 points(v[1],result[1,],pch=".")

エラーが発生します-x と y の長さが等しくありません。

それを行う方法はありますか?

4

2 に答える 2

1

あなたの説明から、v配列はデータのラベルであると考えることができます。それを念頭に置いてデータをプロットし、ggplot2 を使用しましょう。

v配列を と同じサイズのものに変換することから始めますresult

require('ggplot2')
require('reshape')

# OP's original data
v<-c(2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0)    
v.mat <- matrix(v,9,1000)

# OP's original data
result<-matrix(1,9,1000)

次に、meltこのデータを長いデータ フレームに変換するために使用します

v.mat.melt <- melt(v.mat)
result.melt <- melt(result)

次に、必要なビットをデータ フレームに結合します。

# combine data
data <- data.frame('v' = v.mat.melt[,3],
                   'obs' = result.melt[,2],
                   'result' = result.melt[,3])

観測のインデックスである「観測」に「obs」を追加したことに注意してください。使っていませんが、便利かもしれません。

最後に、すべてをプロットします

d <- ggplot(data = data,
            aes(x = v,
                y = result,
                color = v)) + 
  geom_point()
print(d)

出来上がり: 結果

于 2013-08-05T17:40:53.740 に答える