2016-04-14 17 views
1

私は本質的にggplot2を使ってガントチャートを作成しようとしています。私は現在、ggplot2でgeom_tileオプションを使用して、必要なものに非常に近いものを生成しています。 x軸は月、y軸はタスク、ブロックの色はその月の作業時間です。ggplot geom_tile right justify

問題:描画されたブロックは、その月の中央に配置されます。月が表示されたときにブロックがその月を示す垂直グリッド線の右側にくるように、右揃えにする必要があります。

geom_tileのhjustのようなオプションはありますか?これまでのところ私のコードです:

myGanttPlot <- ggplot(data=gantt_data, aes(x=workMonth, y=myTasks, fill=Hours, height=0.5)) + 
       geom_tile(hjust=1.0) + 
       scale_fill_distiller(palette="RdYlGn") 

このコードでは「Unknown parameters:hjust」というエラーが表示されます。私は使用すべきより良い構文がありますか?

+1

「workMonth」の値をシフトすることでこれが処理されます。 'aes(x = workMonth + 0.5、...)'はあなたが必要とすることをしますか? – eipi10

+0

私はworkMonthがPOSIXct型であることを忘れていました。しかし、はい、これは、月の中央に日付が入るように15日を追加すると動作するように見えます。良いアイデア - ありがとう! –

答えて

1

workMonthの値を〜15日にシフトすると、タイルを数か月間でセンタリングすることで、これを処理する必要があります。

ggplot(data=gantt_data, aes(x=workMonth + 60*60*24*15, y=myTasks, fill=Hours, height=0.5)) + 
       geom_tile() + 
       scale_fill_distiller(palette="RdYlGn") 

再現可能な例がないと、上記のコードをテストできないため、これで問題が解決するかどうか教えてください。

+1

はい、問題は解決しました。私は上記を達成するために、POSIXct時間変数に15日を追加する関数を使用しました。私はここで概説したプロセスを使用しました:http://stackoverflow.com/questions/11922181/adding-time-to-posixct-object-in-r –

+0

はい、 'POSIXct'の日付は秒単位であるので、 * 60 * 24 *あなたの日付に15日を追加する15秒。私はそれに応じて私の答えを更新しました。 – eipi10