2017-01-25 2 views
0

ggplotに棒グラフを作成して、scheme列のカウントが時間の経過とともに(つまり2001年から2016まで)どのように変化したかを示しました。ggplotのシフトバー

x軸はyearであり、y軸はカウントを取得する頻度(私はfill=を使用した)を示しています。

year scheme 

2016 yes 
2016 yes 
2016 yes 
2016 yes 
2015 yes 
2015 yes 
2014 yes 
2013 yes 
.... 
2006 no 
2006 no 
2006 no 
2006 no 
2005 no 
2005 no 
2004 no 
2003 no 
2002 no 
2002 no 
2001 no 
2001 no 

マイコード:

a <- ggplot(s) + 
    stat_bin(aes(x=year, fill=scheme, group=scheme), geom="bar", position = "dodge",bins=30) 
b <- a + scale_x_continuous(breaks = c(2001:2016), labels = factor(2001:2016)) 
c <- b + theme(axis.text.x=element_text(size = 10, colour = "black")) 

グラフ:

The bar graph in ggplot

データセットは、文字の値で満たさ二つの列(yearscheme)から構成され私が持っている問題は、バーは、何の理由もなくグラフ内でシフトされている。 x軸とyearというラベルを見れば認識できます。バーは左に(例えば、007)、または右に(2002)移動されすぎます。

私はそれがどうして起こったのか分からず、どうすれば修正できるのでしょうか?どんなタイプの提案も大歓迎です。

+0

scale_x_continuousが問題の原因だと思います。それを取り除き、美学を 'x = factor(year)'に変えてみませんか?あるいは、scale_x_dateオプションを使用してスケールを日付に設定してみることもできます。-'scale_x_date(format ="%Y ")'が機能するかもしれません。 –

答えて

2

bins = 30の代わりにbinwidth = 1を使用してください。 30個のビンがあることを指定するときは、年末の値がseq(2001, 2016, length.out = 30)のセグメントに分割されるように求めています。

すべての奇妙なギャップは、整数を含まないビンからのものです。

+0

ありがとうございます。私は 'bins = 30'だけを' binwidth = 0.5'に変更しました。 – user3832272