Я создаю гистограмму с непрерывными x-метками «Финансовые годы», например «2009/10», «2010/11» и др. c. В моем наборе данных есть столбец с указанным c финансовым годом, с которого я хотел бы начать метки x (см. Пример изображения ниже). Затем я хотел бы, чтобы x-метки были в каждом непрерывном финансовом году до настоящего времени. Последний x-label должен быть «2018/19». Когда я пытаюсь установить пределы с помощью scale_x_continuous
, я получаю сообщение об ошибке Error: Discrete value supplied to continuous scale
. Однако, если я использую «scale_x_discrete», я получаю график только с двумя барами: выбранная дата «Начало» и «Конец» 2018/19.
Start<-Project_x$Start[c(1)]
End<-"2018/2019"
ggplot(Project_x, (aes(x=`FY`, y=Amount)), na.rm=TRUE)+
geom_bar(stat="identity", position="stack")+
scale_x_continuous(limits = c(Start,End))
` Error: Discrete value supplied to continuous scale `
Спасибо.
Мои данные:
df <- data.frame(Project = c(5, 6, 5, 5, 9, 5),
FY = c("2010/11","2017/18","2012/13","2011/12","2003/04","2000/01"),
Start=c("2010/11", "2011/12", "2010/11", "2010/11", "2001/02", "2010/11"),
Amount = c(500,502,788,100,78,NA))
Чтобы использовать код в ответе ниже, мне нужно основать Start_Year
на моем столбце Start
, а не на FY
и график должен быть только для проекта № 5.
as.tibble(df) %>%
mutate(Start_Year = as.numeric(sub("/\\d{2}","",Start)))
xlabel_start<-subset(df$Start_Year, Project == 5)
xlabel_end<-2018
filter(between(Start_Year,xlabel_start,xlabel_end)) %>%
ggplot(aes(x = FY, y = Amount))+
geom_col()
При запуске мой xlabel_start
равен NULL
.