Я пытаюсь создать объект сюжета и добавить к нему данные позже. Я собираюсь установить два года избирательного цикла и добавить вертикальные линии в точке, где произошли ключевые события. Но моя попытка разместить вертикальные линии на графике с интервалом в шесть месяцев вместо этого поставила линии оси y.scale_x_discrete() меняет ось y
library(ggplot2)
dateline = seq(as.Date("2011/1/1"), by = "month", length.out = 24)
values = rnorm(24)
events = data.frame(dateline, values)
ggplot(events, aes(x=dateline, y=values)) +
scale_x_discrete(breaks=c("2011-01-01","2011-07-01","2012-01-01","2012-07-01")) +
labs(x="2012 Election Cycle")
Теперь я думаю, что линии должны быть на оси х и быть запущен вверх и вниз, нет? И еще более странно, что использование scale_y_continuous() приводит к поведению, которое я ожидал для x.
Что делает это более запутанной, что я следовал учебник довольно близко где scale_x_discrete() ведет себя так, как я ожидал, то есть, создавая вертикальные линии для оси х. Я теряю рассудок?
http://sharpsightlabs.com/blog/2014/11/24/r-line-chart-and-datavis-process/
Пожалуйста, уделите время правильному форматированию кода (а также загрузите пакет 'ggplot2'. На ваш вопрос: вы вынуждаете дискретный масштаб по числовым значениям, что не работает (даты представляют собой целочисленные значения, то есть количество дней от 1970-01-01 Я думаю) .Вы можете захотеть нечто вроде 'ggplot (события, aes (x = as.character (dateline), y = values)) + scale_x_discrete (breaks = c (" 2011-01-01 " , "2011-07-01", "2012-01-01", "2012-07-01")) 'или' ggplot (события, aes (x = dateline, y = values)) + scale_x_date (breaks = as .Date (c («2011-01-01», «2011-07-01», «2012-01-01», «2012-07-01»))) ' – lukeA