0

私は R の経験があまりないので、この状況で助けてくれるのではないかと思います。

次のマトリックスがあります。

mat <- matrix(c(0,0.5,0.2,0.23,0.6,0,0,0.4,
         0.56,0.37,0,0.32,0.4,0.99,0.54,0.6,0,0.39), ncol=6, nrow=3)

dimnames(mat) = list( 
                  c("y1","y2","y3"),
                  c("day1","day2","day3","day4","day5","day6")
                    )

> mat
   day1 day2 day3 day4 day5 day6
y1  0.0 0.23 0.00 0.37 0.40 0.60
y2  0.5 0.60 0.40 0.00 0.99 0.00
y3  0.2 0.00 0.56 0.32 0.54 0.39
> 

マトリックスに基づいてポイントがマークされるグラフを取得する方法を知りたいです。

値は区間 [0,1] で任意です。一連の制約として、生成されたポイントの色を変更することは可能ですか?

例:

  • (0,0.2] - 赤
  • (0.2,0.4] - 緑
  • (0.4,0.6] - 黄
  • (0.6,0.9] - 青
  • (0.9,1] - 黒

うまく説明できていない場合は、申し訳ありません。

ありがとうございました!

4

4 に答える 4

1

黄色の範囲が [0.4,0.6] であると仮定します (それ以外の場合は、(0.4,0.5) の色を指定していません。データが必要としない場合でも指定する必要があります)。

image(mat,col=c("red","green","yellow","blue","black"),breaks=c(0,0.2,0.4,0.6,0.9,1))

間隔エンドポイントの問題は無視しました。

于 2013-08-27T23:36:47.973 に答える
0

異なる間隔に色を割り当てるには、 を使用して値をグループに分割できますcut。他の人が言ったように、境界上のポイントをどうするかは少し不明なので、次のように設定include.lowerしましたTRUE:

library(reshape2)
df = melt(mat)
colnames(df)[1:2] = c('year', 'day')
df$value_groups = cut(df$value, breaks=c(0,0.2,0.4,0.6,0.9,1), include.lower=TRUE)

library(ggplot2)
ggplot(df, aes(x=day, y=value, colour=value_groups, shape=year)) +
  geom_point(size=3)

結果:

ここに画像の説明を入力

于 2013-08-27T23:40:29.197 に答える
0

ラティスを使用してそれを行う方法は次のとおりです。

library(reshape2)
library(lattice)

mmat <- melt(mat) # reshaping the data

# note that zero isn't included in the interval
  mmat$colors <- cut(mmat$value, breaks=seq(0, 1, 0.2), include.lower=TRUE) # stealing from Marius


xyplot(value ~ Var2 | Var1, mmat, groups = colors,
  par.settings = list(superpose.symbol = 
    list(col = c('red', 'green', 'yellow', 'blue', 'black'))))
于 2013-08-27T23:46:39.320 に答える