2017-11-10 7 views
1

私は、1〜4の評価を受けた8つの因子をいくつか持っています。これらの因子ごとの評価の分布に興味があります。GGplot2:循環的に100%に累積する棒グラフの整列

古典的なバープロットでは、thisのように表示します。しかし、空間情報もあり、それを私のプロットに反映したいと思います。

thisのようなものに到達しようとしていますが、私の現在のコードでは私にこのoutputが与えられていますが、明らかに正確な比率と必ずしも四角ではありません。

3つのプロットをすべて複製するコード全体は、hereです。

d <-qplot(x, y, data=df, fill = rating) + geom_col()

私は本当に任意のヘルプ

+0

あなたは投稿できますこの空間データは? – PoGibas

+0

オブジェクトは基本的に時計上で8つの位置として提示されました。したがって、クラス1がクラス3の「上と下」であることを知ることは重要です。 ペーストビンからの関連データは次のとおりです。 'x < - c(5,3.5,0、-3.5、 -5、-3.5,0,3.5) y < - c(0,3.5,5,3.5,0、-3.5、-5、-3.5) ' –

+0

これらの2つの次元はありませんか? – PoGibas

答えて

3

をいただければ幸いたぶんこれはあなたが探しているものです::これは間違ったプロットを生成するものである

library(grid) 
library(ggplot2) 

class <- (c(rep(1,4),rep(2,4), rep(3,4), rep(4,4), rep(5,4), rep(6,4), rep(7,4), rep(8,4))) 
rating <- rep(c(1,2,3,4),8) 
proportion <- c(0.3304, 0.4241, 0.1305, 0.1150, 
      0.4119, 0.4016, 0.1026, 0.0839, 
      0.2831, 0.4279, 0.1493, 0.1397, 
      0.1150, 0.1305, 0.4241, 0.3304, 
      0.1305, 0.1150, 0.4241, 0.3304, 
      0.3304, 0.4241, 0.1150, 0.1305, 
      0.1150, 0.3304, 0.4241, 0.1305, 
      0.1150, 0.1305, 0.4241, 0.3304) 
df <- data.frame(class,proportion,rating) 
df$class <- as.factor(df$class) 
df$rating <- as.factor(df$rating) 

lev <- levels(df$class) 
nlev <- length(lev) 
angs <- seq(pi/2,-pi-2*pi/nlev,-2*pi/nlev) 
xpos <- cos(angs)*.4+0.5 
ypos <- sin(angs)*.4+0.5 

grid.newpage() 

for (k in 1:nlev) { 
    pushViewport(viewport(x=xpos[k], y=ypos[k], w=.1, h=.2)) 
    p <- ggplot(aes(x=1, y=proportion, fill=rating), data=subset(df,class==lev[k])) + 
     geom_col(show.legend=F) + theme_void() + ggtitle(lev[k]) 
    g <- ggplotGrob(p) 
    grid.draw(g) 
    popViewport() 
} 

enter image description here

関連する問題