14

Rでのプロットは初めてなので、助けを求めます。次のマトリックスがあるとします。

mat1 <- matrix(seq(1:6), 3)
dimnames(mat1)[[2]] <- c("x", "y")
dimnames(mat1)[[1]] <- c("a", "b", "c")
mat1
  x y
a 1 4
b 2 5
c 3 6

これをプロットしたいのですが、x 軸には各行名 (a、b、c) が含まれ、y 軸は各行名の値 (a = 1 と 4、b = 2 と 5、c = 3 と 6) です。 )。どんな助けでも大歓迎です!

|     o
|   o x
| o x
| x
|_______
  a b c
4

4 に答える 4

12

基本グラフィックスを使用する 1 つの方法を次に示します。

plot(c(1,3),range(mat1),type = "n",xaxt ="n")
points(1:3,mat1[,2])
points(1:3,mat1[,1],pch = "x")
axis(1,at = 1:3,labels = rownames(mat1))

ここに画像の説明を入力

別のプロット記号を含むように編集

于 2012-11-26T21:20:57.413 に答える
10

matplot()次の形式のデータ用に設計されています。

matplot(y = mat1, pch = c(4,1), col = "black", xaxt ="n",
        xlab = "x-axis", ylab = "y-axis")
axis(1, at = 1:nrow(mat1), labels = rownames(mat1))             ## Thanks, Joran

ここに画像の説明を入力

于 2012-11-26T21:28:30.167 に答える
6

そして最後に、格子解

library(lattice)
dfmat <- as.data.frame(mat1)
xyplot( x + y ~ factor(rownames(dfmat)), data=dfmat, pch=c(4,1), cex=2)

ここに画像の説明を入力

于 2012-11-27T02:19:18.260 に答える
3

基本グラフィックスでそれを行うこともできますが、R をこれ以上の目的で使用する場合は、ggplot2パッケージについて知る価値があると思います。ggplot2データ フレームのみを取得することに注意してください。ただし、多くの場合、データを行列ではなくデータ フレームに保持する方が便利です。

d <- as.data.frame(mat1) #convert to a data frame
d$cat <- rownames(d) #add the 'cat' column
dm <- melt(d, id.vars)
dm #look at dm to get an idea of what melt is doing

require(ggplot2)
ggplot(dm, aes(x=cat, y=value, shape=variable)) #define the data the plot will use, and the 'aesthetics' (i.e., how the data are mapped to visible space)
  + geom_point() #represent the data with points

ここに画像の説明を入力

于 2012-11-26T21:30:06.970 に答える