У меня есть набор данных, где ось x - это дата, но это только мм-дд (без года). Я использую год как групповую переменную, поскольку пытаюсь показать изменение года на том же графике. Надписи по оси X слишком переполнены, и я хотел бы ограничить метки меток, чтобы отображалась не каждая дата. Это может быть через день, каждый третий день, один день в неделю - подойдет любой из них.
Я пробовал несколько решений, но не могу заставить их работать, я предполагаю, потому что моя ось x - это не дата, а символ. (До того, как прийти к этому решению mm-dd для оси x, я попытался построить ось x в формате даты yyyy-mm-dd, но мне не удалось выяснить, как заставить ggplot2 игнорировать часть «yyyy». .)
Пример:
myDF <- data.frame(
myDate = format(seq(as.Date("2014-02-01"),
length=28, by="1 day"), "%m-%d"),
myVar = sample(100,28),
myGroup = sample(2,28,TRUE)
)
head(myDF)
myDate myVar myGroup
02-01 87 1
02-02 34 1
02-03 48 2
02-04 59 1
02-05 98 1
02-06 18 2
ggplot(myDF, aes(myDate, myVar, group=myGroup, color=as.factor(myGroup))) +
geom_line()
Я пытался:
ggplot(myDF, aes(myDate, myVar, group=myGroup, color=as.factor(myGroup))) +
geom_line() + scale_x_discrete(breaks = c(1,10,20))
Похоже, это сбивает с толку ggplot, поскольку метки полностью исчезают. (Тот же результат с попыткой seq ().)
Я также пробовал:
ggplot(myDF, aes(myDate, myVar, group=myGroup, color=as.factor(myGroup))) +
geom_line() + scale_x_date(breaks = "1 week")
Это вызывает ошибку re: myDate не является датой.
Я уже переключил формат меток галочки на вертикальный, но на графике все еще слишком много.
Любые советы будут очень признательны. Спасибо!
as.data.frame(cbind(.))
ошибка.cbind
все принуждает к характеру. А если вам нужны свидания, то не заставляйте персонажа использоватьformat
. - person IRTFM   schedule 14.08.2014?scale_x_date
, функции, которую вы использовали, то вы бы нашли несколько примеров того, как управлять форматом меток и частотой [...] отметок. - person Henrik   schedule 14.08.2014