일년 중 특정 이벤트 수가 포함 된 간단한 막대 그래프를 그려 봅니다.데이터가 누락되었을 때 바 플롯 및 깔끔함 문제
> DPUT(all.events)
structure(list(YEAR = c("1987", "1988", "1989", "1990", "1991",
"1992", "1993", "1994", "1995", "1996", "1998", "2000", "2001",
"2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009",
"2010", "2011", "2013", "2015", "2016"), count = c(3L, 4L, 2L,
3L, 1L, 2L, 6L, 1L, 7L, 1L, 6L, 1L, 2L, 3L, 3L, 4L, 1L, 1L, 1L,
2L, 2L, 10L, 1L, 2L, 1L, 3L)), .Names = c("YEAR", "count"), row.names = c(NA,
-26L), class = "data.frame")
을 여기에 내 ggplot
스크립트입니다 : 다음은 데이터의 나는 complete
할 것이라고 기대하고 전에 경우에 무슨 짓을했는지 어떤
ggplot(tidyr::complete(all.events,YEAR,fill=list(count=0)),
aes(x=YEAR,y=count)) +
geom_bar(stat="identity") +
scale_y_continuous(limit=c(0,15),expand=c(0, 0)) +
scale_x_discrete(breaks=c(1985,1990,1995,2000,2005,2010,2015),
labels=c(1985,1990,1995,2000,2005,2010,2015)) +
theme_bw(base_size = 13) +
xlab("") + ylab("No of events")
, x 축에 따라 년 삽입하는 것입니다 축 또한 count = 0이다. 내가 얻을 줄거리는 하나 아래입니다에 해당하는 실종 년이 곳 개수 = 0 : 내가 잘못 뭐하는 거지
?
'YEAR'을 숫자로 변경하십시오 :'all.events $ YEAR <- as.numeric (all.events $ YEAR)'. 'ggplot'은 연속/숫자가 아닌 절대적으로 취급합니다. – SymbolixAU
그렇습니다.'YEAR'가 숫자 일 때'full_seq'를 사용하여 누락 된 연도를 모두 추가 할 수 있습니다 :'complete (all.events (YEAR = full_seq (YEAR, 1), fill = list (count = 0))' – aosmith
엄밀히 말하면, 나는'date' 또는'datetime' 스케일을 사용하려고합니다. 주, 월 또는 연도별로 집계 할 때. 'as.integer (YEAR) '대신에'lubridate :: ymd (YEAR, truncated = 2L)'을 할 수 있습니다. 이점은 [다른 예] (https://stackoverflow.com/a/47619794/3817004)에서 더 잘 보입니다. – Uwe