25

ggplot2によって生成されたプロットに表示される最初と最後の目盛りを指定できるようにしたいと思いますが、いくつかの問題が発生しています。ここにいくつかのコードがあります。

#Produce a vector of days 
dateVec <- seq(from = as.Date("2011-11-21"), to = as.Date("2012-11-23"), by = "days")

#Some random values
myData <- rnorm(length(dateVec))

# Plot it
qplot(dateVec, myData) + 
    scale_x_date(breaks = "4 weeks", limits = c(min(dateVec), max=max(dateVec))) + 
    theme(axis.text.x = element_text(size = 10, angle = 45, colour = "black",
          vjust = 1, hjust = 1))

日付ベクトルの最小日付は2011-11-21であり、最大日付は2012-11-23であり、プロットの制限を指定していることに注意してください。ただし、プロットはある程度拡張されているようです。

最初と最後の目盛りを、で指定された実際の制限に対応させる方法はありますscale_x_dateか?

ありがとう!

4

1 に答える 1

30

軸が展開されないようにするために、に引数expand = c(0, 0)を追加できますscale_x_date()

qplot(dateVec, myData) + 
scale_x_date(breaks = "4 weeks", limits = c(min(dateVec), max = max(dateVec)),
             expand=c(0,0)) +  
theme(axis.text.x  = element_text(size = 10, angle = 45, colour = "black",
      vjust = 1, hjust = 1))

ここに画像の説明を入力

アップデート

最小および最大の日付で始まるティックが必要な場合は、独自のブレークを定義できます。このために、break.vec最小日付と最大日付、およびそれらの間の月ごとの日付を含むベクトルを作成しました。次に、このベクトルを使用して にブレークを設定しましたscale_x_date()

break.vec <- c(as.Date("2011-11-21"),
               seq(from = as.Date("2011-12-01"), to = as.Date("2012-11-01"),
                 by = "month"),
               as.Date("2012-11-23"))

qplot(dateVec, myData) + 
  scale_x_date(breaks = break.vec) +  
  theme(axis.text.x = element_text(size = 10, angle = 45, colour = "black",
                                   vjust = 1, hjust = 1))

ここに画像の説明を入力

于 2013-02-07T19:59:30.407 に答える