2016-10-27 12 views
-1

プロットオブジェクトを設定して後でデータを追加しようとしています。私は2年間の選挙サイクルを設定し、重要な出来事が起きた時点で縦線を追加します。しかし、6ヶ月の間隔で縦線をプロットに配置しようとする私の試みは、代わりにy軸を線に置きます。scale_x_discrete()はy軸を変更します

library(ggplot2) 


dateline = seq(as.Date("2011/1/1"), by = "month", length.out = 24) 
values = rnorm(24) 


events = data.frame(dateline, values) 


ggplot(events, aes(x=dateline, y=values)) + 
    scale_x_discrete(breaks=c("2011-01-01","2011-07-01","2012-01-01","2012-07-01")) + 
    labs(x="2012 Election Cycle") 

結果は次のとおりです。 enter image description here

いや、今私はラインがx軸にすべきだと思いますし、上下動作していますか?そして、それ以外のものは、scale_y_continuous()を使うと、私がxに対して期待していた振る舞いになるということです。

enter image description here

これは、より混乱させることは私はかなり密接にチュートリアルを下記たことをここでscale_x_discrete()は、x軸の垂直線を作成し、私が期待した方法、すなわちに動作されます。私は私の心を失っていますか?

http://sharpsightlabs.com/blog/2014/11/24/r-line-chart-and-datavis-process/

+0

'ggplot2'パッケージをロードして、コードを正しくフォーマットしてください。あなたの質問には:数値は整数ではない(日付は整数です) 1970年1月1日から1970年1月1日まで) 'ggplot(events、aes(x = as.character(dateline)、y = values))+ scale_x_discrete(breaks = c (=イベント、aes(x = dateline、y =値))+ scale_x_date(ブレーク= as( "2011-07-01"、 "2012-01-01"、 "2012-07-01")) .Date(c( "2011-01-01"、 "2011-07-01"、 "2012-01-01"、 "2012-07-01"))) ' – lukeA

答えて

1

あなたは連続尺度を使用する必要があります。これは私の作品:

ggplot(events, aes(x=dateline, y=values)) +  
    scale_x_date(date_breaks="6 months")  

より一般的には、単に:日付範囲がggplotを自動的に表示するラベルの範囲と6ヶ月を選ぶようになっているので、

ggplot(events, aes(x=dateline, y=values)) 

は(あなたのケースでこれを動作しますなぜあなたはyの連続スケールの例がうまくいくのですか; yは何もしていません。それは助けてくれるscale_x_discreteビットの除去です)。

+0

ああ、ありがとう。私は私の心を失っていたと思った。 – user3426752

関連する問題