나는 시간이 지남에 따라 다른 지방의 다른 기술 클래스에서 고용에 대한 데이터를 가지고 있습니다. 시간에 따른 여러 지방 및 클래스의 고용을 하나의 그래프로 표시하고 싶습니다. 다음 그림은 내가 원하는 것을 보여 주지만 1 년 (2000) 동안 만
ggplot(df, aes(fill=classes, y=total/10^6, x=province)) +
geom_bar(position="stack", stat="identity")
그러나 동일한 그래프의 각 주에 대해 각 막대 (매년 표시)를 두 번 (예 : 2 년) 반복하도록하고 싶습니다. 즉, 2000 년의 막대 옆에 위와 같은 그래프로 2001 년 데이터를 표시하고 싶습니다.
다음은 데이터의 일부입니다.
df <- structure(list(year = c(2000L, 2000L, 2000L, 2000L, 2000L, 2000L,
2000L, 2000L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L,
2001L), province = c("Alberta", "Alberta", "Alberta", "Alberta",
"Manitoba", "Manitoba", "Manitoba", "Manitoba", "Alberta", "Alberta",
"Alberta", "Alberta", "Manitoba", "Manitoba", "Manitoba", "Manitoba"
), classes = structure(c(2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L,
3L, 4L, 1L, 2L, 3L, 4L, 1L), .Label = c("[0,0.2]", "(0.2,0.4]",
"(0.4,0.6]", "(0.6,0.8]", "(0.8,1)", "1"), class = "factor"),
total = c(11387250L, 4373500L, 18250L, 3215500L, 3984750L,
1414750L, 2000L, 1222750L, 11838250L, 4390000L, 21250L, 3272750L,
4019750L, 1331750L, 7750L, 1237000L)), row.names = c(NA,
-16L), vars = c("year", "province", "classes"), drop = TRUE, class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), indices = list(3L, 0L, 1L, 2L,
7L, 4L, 5L, 6L, 11L, 8L, 9L, 10L, 15L, 12L, 13L, 14L), group_sizes = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), biggest_group_size = 1L, labels = structure(list(
year = c(2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 2000L,
2000L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L
), province = c("Alberta", "Alberta", "Alberta", "Alberta",
"Manitoba", "Manitoba", "Manitoba", "Manitoba", "Alberta",
"Alberta", "Alberta", "Alberta", "Manitoba", "Manitoba",
"Manitoba", "Manitoba"), classes = structure(c(1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), .Label = c("[0,0.2]",
"(0.2,0.4]", "(0.4,0.6]", "(0.6,0.8]", "(0.8,1)", "1"), class = "factor")), row.names = c(NA,
-16L), vars = c("year", "province", "classes"), drop = TRUE, class = "data.frame"))
당신이 찾고있는 것입니까?
ggplot(df, aes(fill=classes, y=total/10^6, x=as.factor(year))) +
geom_bar(position="stack", stat="identity") +
facet_wrap(.~province)
@ user12728748이 제안한대로 패널의 여백을 수정하여 단일 플롯처럼 보이게 만들 수 있습니다.
ggplot(df, aes(fill=classes, y=total/10^6, x=as.factor(year))) +
geom_bar(position="stack", stat="identity") +
facet_wrap(.~province)+
theme(panel.margin = grid::unit(-1.25, "lines"))
NB : .NET Framework를 설정하면이 트릭을 사용할 수 없으므로주의 scales = free
하십시오 facet_wrap
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다