2016-06-17 29 views
1

私は月にカウントデータを表示するggplotに垂直線を追加しようとしています。私のx軸はファクターとして月ですが、私の縦線はユリウス日を表しています。これらのデータと例えばggplotのバープロットに垂直線を追加する

、:私はどのように私は、ユリウス日68のx切片で2本の垂直線を追加することができ、次のバープロット

ggplot(dat)+ geom_bar(aes(x= Month, y = Data), stat="identity") 

を作ることができます

dat <- structure(list(Month = structure(1:12, .Label = c("Jan", "Feb", 
"Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", 
"Dec"), class = c("ordered", "factor")), Data = c(1, 1, 2, 2, 
6, 11, 19, 23, 19, 13, 5, 1)), .Names = c("Month", "Data"), class = "data.frame", row.names = c(NA, 
-12L)) 

と252 geom_vlineを使用していますか?

私は、毎月の(因子)x軸データに連続的なスケールを参照する線をプロットする方法がわかりません。

+0

68日目と252日目の日はいつですか? – Spacedman

+0

ただの例 –

+0

はい、私はあなたが68日が3月だったと言いたいのであれば便利だろうと思っていました! – Spacedman

答えて

2

データは、月ごとに単一の単位でプロットされたので、あなたは、バーサイズのオフセットをいくつかと、ヶ月で今年の割合として行を追加する必要があります。

ggplot(dat) + 
    geom_bar(aes(x = Month, y = Data), stat = "identity") + 
    geom_vline(xintercept = 12 * (c(68, 252)/365) + 0.5) 

チェックこの日1日365用のラインを見て:

ggplot(dat) + 
    geom_bar(aes(x = Month, y = Data), stat = "identity") + 
    geom_vline(xintercept = 12 * (c(1, 365)/365) + 0.5) 

日おきに直線的にグラフ全体に補間されます。

1

あなたのx軸がfactorの場合、geom_vlineは、各値の出現順をインターセプトとして使用します。

あなたは、あなたが探している正確な日付に対応する部分を特定する必要があります。この例では、2つの例示的な分数を使用しています。

ggplot(dat)+ geom_bar(aes(x= Month, y = Data), stat="identity") + 
geom_vline(xintercept = 5.2) + 
    geom_vline(xintercept = 8.7) 
+0

私はプロットする必要がある日付が将来変更される可能性があるので、私は精緻化を求めることができますか? –

+0

私は5.2と9.2が与えられた年の日に対応しているとは思わない。 – Spacedman

+0

@Spacedman私は解答で説明しましたが、これは例示的なものです。私はあなたが線の正確な位置を計算するための簡単な方法を含んでいるのを見ました。 –

関連する問題