2012-10-07 16 views
11

私はリボンプロットを作成したいです(本当にそれはカテゴリ変数の複数のグループのラインプロットです)が、3Dスタイルで表示されます。リボンプロットの作成方法は?

Ribbon plot example

だから多分私達は、リボンプロットとして、次のサンプルデータをプロットしたいと思う:これはRで

set.seed(10) 
fun <- function(i) data.frame(person=rep(LETTERS[i], 26), 
    letter=letters, count=sample(0:100, 26, T)) 
dat <- do.call(rbind, lapply(1:10, function(i) fun(i))) 

library(ggplot2) #a traditional 2-d line plot of the data 
ggplot(data=dat, aes(x=letter, y=count, group=person, color=person)) + 
    geom_line() 

を達成することができますどのようにこれは、次のようになりますか?私はデータを表示するより良い方法があるかもしれないが、私の興味は現在リボンスタイルのプロットを作り出すことにある。

答えて

16

うまくいけば、以下の例では、あなたは右方向にポイントを助ける:あなたが見ることができるように、ここでの基本的な考え方は非常に単純です

# data 
mat <- matrix(dpois(rep(1:20, 10), lambda=rep(10:1, each=20)), ncol=10) 

# 2d line plot 
matplot(mat, type="l", col="black", lty=1) 

# 3d ribbon plots 
par(mar = c(0, 1, 0, 1)) 
par(mfrow=c(1,2)) 
persp(z=mat[,rep(seq(ncol(mat)), each=2)], r=5, theta=320, phi=35, shade=0.5, 
     border=NULL, col=rep(c("#808080FE","#00000000"), each=nrow(mat)-1)) 
persp(z=mat[,rep(seq(ncol(mat)), each=2)], r=5, theta=320, phi=35, shade=0.5, 
     border=NA, col=rep(c("#808080FE","#00000000"), each=nrow(mat)-1)) 
par(mfrow=c(1,1)) 
par(mar = c(5,4,4,2)+.1) 

ribbon_example

。値を整理して行列にし、行列の列を複製してペアにし、persp()を使って値をプロットし、透明と不透明の色を交互にしてください。しかし、特に境界パラメータで何をすべきかに関しては、まだ検討されていないいくつかのトリッキーな詳細が残っています。私はそれらの詳細をあなたに残します。

これが役に立ちます。

関連する問題