2016-09-30 23 views
-1

私はRでggplotを使用してプロットを作ることにしようとしていますし、私は、以下で説明したのと同じ問題を抱えています。ggplotの日付軸にラベルを付ける?

Date axis labels in ggplot2 is one day behind

私のデータは、2016年9月1日から2016年9月30日の範囲であるが、プロットのラベルは、2016年8月31日には、データの最初の日であると言います。 私は前の質問で解決策の問題を解決:、とにかく

ggplot(df, aes(x, y)) + 
    geom_point() + 
    scale_x_datetime(breaks =df$x , labels = format(df$x, "%Y-%m-%d")) 

は、(データから正確な日付を取ることによって、休憩とラベルを設定するには、このですか?)

を私は新しいを持っています問題が発生しました。 の日付がラベルに一致していますが、プロットがうまく見えません。

see my plot here

私は日付の長さは文句はないのですが長すぎるが、私は一週間以上溶液で一定の日数で休憩し、ラベルを設定することはできませんが好きではありません。 また、私には多くの欠落した日付があります。

私はこの問題を解決するにはどうすればよいですか?私は新しい解決策が必要です。

+0

あなただけの 'scale_x_date(date_labels = '%F')'で休憩せずに書式を設定することができます。ブレークを設定する必要がある場合は、x値ごとではなく、間隔の広い間隔を設定します。また、あなたが作るためにあなたの質問にいくつかのサンプルデータを提供しなければならないこと[再現性](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – alistaire

+0

@alistaire 'scale_x_date(date_labels ='%F ') 'は、前述の最初の問題に直面したときに既に使用されていました。つまり、日付がx軸のラベルと一致しませんでした。( –

+0

@alistaire私はそれがこの問題にすることはないだろう、生データとしてデータをアップロードした場合。データはR作業スペース上の複数のプロセスによって作られた私は思った。あなたの答えをありがとう。 –

答えて

1

あなたがあなたの日付を垂直に(あなたがすべてのあなたの日付を見ることができるそのように)表示させたい場合はただ、これを使用する:

ggplot(df, aes(x, y)) + 
geom_point() + 
scale_x_datetime(breaks =df$x , labels = format(df$x, "%Y-%m-%d")) + 
theme(axis.text.x = element_text(angle=90, vjust = 0.5)) 
+0

ありがとう!私はこの戦略を使用して考えました –

0

を私は多分私の質問は、ここでは詳細に説明されていなかった...解決策を見つけました。 日付が軸上の値に一致しなかったと私はプロットが良く見えるようにしたかった状況のための私のソリューションは、次のとおりです。

# set breaks first by seq.POSIXt 
breaks.index <- seq.POSIXt(from=as.POSIXct(strftime("2020-01-01", format="%Y-%m-%d"), format="%Y-%m-%d"), to=as.POSIXct(strftime("2020-12-31", format="%Y-%m-%d"), format="%Y-%m-%d"), by="1 week") 

# plot 
plot <- ggplot(data, aes(x=date, y=y) 
+scale_x_datetime(breaks = breaks.index, labels = format(breaks.index, "%Y-%m-%d")) 
plot 

私はscale_x_date(date_labels ='%F')と、このコードがどのように機能するか、それが動作を使用して異なっているかを理解していないけど。

関連する問題