2017-03-26 30 views
2

ggplot2の循環ヒストグラムを作成しています。これは、呼び出し回数が24時間にどのように変化するかを示しています。私のデータセットは0から始まり、時間あたりのコール数で、23に行く:結果のように私は本当にggplot2の円形ヒストグラム(棒グラフと余分な線はありません)

ggplot(df, aes(xvar, y)) + 
    coord_polar(theta = "x", start = -.13, direction = 1) + 
    geom_bar(stat = "identity", fill = "maroon4", width = .9) + 
    geom_hline(yintercept = seq(0, 500, by = 100), color = "grey80", size = 0.3) + 
    scale_x_continuous(breaks = seq(0, 24), labels = seq(0, 24)) + 
    xlab("Hour") + 
    ylab("Number of Calls") + 
    ggtitle("Number of Calls per Hour") + 
    theme_bw() 

:私は、円形のヒストグラムを作成するには、次のコードを使用してい

df = data.frame(xvar = 0:23, 
       y = c(468,520,459,256,397,241,117,120,45,100,231,398,340,276,151,134,157,203,308,493,537,462,448,383)) 

をプロット:

Circular histogram

が、私は他のバーの存在であるとして、23と0バーの間の同じ間隔を取得する方法を見つけ出すことはできません。今、その2本の棒はお互いにぴったりしており、私がこれまでに試したことはない。私はまた、別の時間(例えば、21と22の間の線)を削除することに興味があります。これは、やや気を散らすもので、情報を伝えないからです。どんな助言も、特に23と0の棒の間隔を置いて、高く評価されるでしょう!

+0

おかげで、少しの簡素化。しかしそれを変えてもプロットは変わらなかった。その他のアドバイスは? – TAH

答えて

2

expandパラメータを使用して調整することができます。私は今、それが不要だったことを実現し@alistaire

ggplot(df, aes(x = xvar, y = y)) + 
    coord_polar(theta = "x", start = -.13) + 
    geom_bar(stat = "identity", fill = "maroon4", width = .9) + 
    geom_hline(yintercept = seq(0, 500, by = 100), color = "grey80", size = 0.3) + 
    scale_x_continuous(breaks = 0:24, expand = c(.002,0)) + 
    labs(x = "Hour", y = "Number of Calls", title = "Number of Calls per Hour") + 
    theme_bw() 

plot with space between 23 and 0

+0

素晴らしい@alistaire、ありがとう!フォローアップとして、数字間の線を削除する方法はありますか? expandを使用するとギャップが作成されますが、23と0の間に介入する行は追加されません。これらの不要な行を削除すると、より良い結果が得られるはずです。 – TAH

+0

確かに '+ theme(panel.grid.minor = element_blank())'をタックしてください – alistaire

+0

これはまさに私が必要としていたものです – TAH