7

次の形式で、Web からいくつかのデータをスクレイピングして処理しました。

>head(dat)
  count  name          episode    percent
1   309   don 01-a-little-kiss 0.27081507
2   220 megan 01-a-little-kiss 0.19281332
3   158  joan 01-a-little-kiss 0.13847502
4   113 peggy 01-a-little-kiss 0.09903593
5   107 roger 01-a-little-kiss 0.09377739
6    81  pete 01-a-little-kiss 0.07099036

ここに似た積み上げ面グラフを作成しようとしています: Making astacked area plot using ggplot2

私がするとき

require(RCurl)
require(ggplot2)
link <- getURL("http://dl.dropbox.com/u/25609375/so_data/final.txt")
dat <- read.csv(textConnection(link), sep=' ', header=FALSE, 
             col.names=c('count', 'name', 'episode'))

dat <- ddply(dat, .(episode), transform, percent = count / sum(count))

ggplot(dat, aes(episode, percent, group=name)) + 
     geom_area(aes(fill=name, colour=name), position='stack')

ここに画像の説明を入力

私はこの奇妙なチャートを手に入れました。

episode領域が互いに交差しないようにし、各要素の合計パーセントが 100% になるようにキャンバス全体を塗りつぶします。

4

1 に答える 1

9

それは面白かったです。行が 1 つ欠けているので (レーンは Tea Leaves に表示されませんでした...?)、

dat2 <- rbind(dat,data.frame(count = 0,name = 'lane',
                    episode = '02-tea-leaves',percent = 0))

ggplot(arrange(dat2,name,episode), aes(x = episode,y = percent)) + 
  geom_area(aes(fill=name,group = name), position='stack')

ここに画像の説明を入力

動作するようです。しかし、それも正しい順序である必要があり、その理由は完全にはわかりません.

于 2012-05-01T04:21:43.970 に答える