私は、時間(Date)に渡って2つの変数(TbとTa)を持つデータセットを持っています。シャドウggplot2バックグラウンドファクターレベル
` Date Tb Ta Light
1 2015-02-15 01:13:00 36.103 22.751 nightime
2 2015-02-15 01:55:00 36.103 22.626 nightime
3 2015-02-15 02:37:00 35.605 22.626 nightime
4 2015-02-15 03:19:00 35.605 22.751 nightime
5 2015-02-15 04:01:00 36.103 23.001 nightime
6 2015-02-15 04:43:00 35.605 22.876 nightime`
「Light」のレベルで異なるシェーディングのプロットを作成しようとしています。だから、 'ライトタイム'の「ナイトタイム」のポイントはすべて灰色で表示され、「昼間」は白で表示されます。このような何か:
は因子レベルで動作するようにgeom_rect()
を取得する方法はありますか?私はUsing ggplot2 in R, how do I make the background of a graph different colours in different regions?
ggplot() + geom_rect(data=tbdf, (aes(xmin=Date,
xmax=Date, ymin=min(Tb), ymax=max(Tb), fill=Light))) +
geom_line(data = tbdf, aes(x = Date, y = Tb)) +
geom_line(data = tbdf, aes(x = Date, y = Ta), colour='grey') +
xlab('Date') +
ylab('Temperature (°C)')
に基づいて、次を試してみましたが、それはライトの凡例が、それでも通常のグレーの陰影で終わる
...灰色の背景に影「夜間の」としてコード化されたすべてのポイントを必要とします:
任意の提案ですか?
私は、 'aes(NULL、NULL)'は、あなたがフォローしている例ではなく、奇妙に思えます。私はそれを取り除くだろう。 – Gregor
私はそれを試してみましたが、xmaxとminに対して-0.5と+0.5を取り除くと、それはすべて1色(nightimeのもの)になります。私はそれを削除するために投稿を編集しました。 –
あなたのデータを 'dput()'、 'dput(head(tbdf、20))'と共有し、POSIX datetimeで読むためのコピー/貼り付けが本当の苦痛であれば助けになります。また、すべての夜間ではないように十分なデータを表示するようにしてください。本当の解決策は、データの各行に対して1つの矩形ではなく、1日あたり2つの矩形をプロットするために、夜から1日への遷移ポイントを持つ集計データフレームを作成することです。 – Gregor