ggplot2를 사용하여 R 기본 플롯의 더 나은 버전을 만들려고합니다. 일반적인 전설이있을뿐만 아니라 ggplot2 스타일과 사용자 정의가 마음에 든다. 내 데이터는 몇 가지 (그러나 다른) 치료에 대해 동일한 두 그룹의 관찰을 포함하는 세 개의 개별 데이터 세트로 구성됩니다. 따라서 저는 다른 요인 레벨을 사용하여 일반적인 범례와 함께 하나의 그래프에 3 개의 개별 플롯을 생성하려고합니다.다중면이있는 ggplot2의 클러스터 된 막대 그래프에서 빈 요소 제거
foo<-data.frame(c(letters,letters),c(rep('T1',26),rep('T2',26)),
runif(52),rep(c(rep('Ori1',12),rep('Ori2',8),rep('ori3',6)),2))
names(foo)<-c('Treatment','Type','Count','Origin')
a<-ggplot(foo,aes(x = factor(Treatment),y = Count))
a+ facet_grid(Origin~., scales="free_y", space="free") +
geom_bar(stat="identity",aes(fill=factor(foo$Type)),position="dodge")
+theme_bw()+theme(axis.text.x=element_text(angle=60,hjust=1))+coord_flip()
:
내 데이터로 정확히 같은 구조를 가지고 더미 데이터로 ggplot2 플롯을 생성하려고 : 여기에 첫 번째 이미지는 지금까지 R 기반으로 생성 한 것입니다 나의 점을 설명하기 위해
다음과 같은 바람직하지 않은 결과가 나옵니다.
나는 스택 오버플로 주제를 알고 Removing Unused Factors from a Facet in ggplot2 및 How can I remove empty factors from ggplot2 facets? 그러나, 그들은 내가 여기에 실현하기 위해 노력 클러스터 된 막대 그래프를 처리하지 않으며 그러나 나는 지금 그것을 어떻게 해결하지 않는, 그들은 문제가있다 생각합니다. 모든 지침을 환영합니다.
필자는이 문제가 해결 될 때까지 (복잡한 경우) 'coord_flip'을 생략하고 대신 'facet_wrap (~ Origin, scales = "free_x")'를 사용하는 것으로 착각합니다. – joran
@joran 주석 주셔서 감사합니다. 문제를 해결하지 못합니다. 'coord_flip'은 여기에 문제를 일으키지 않습니다. 그런 식으로 서식을 지정할 것을 좋아하기 때문에 포함 시켰습니다. 가장 중요한 문제는 패싯 전체에 걸쳐'position = "닷지"를 유지하는 방법입니다. 아마 내가 기본 그래프를 그렇게 재현하고 싶지는 않다는 것을 분명히해야합니다. 단지 ggplot2 스타일에서 사용할 수있는 플롯의 본질을 원합니다. –
내가 제안한 것을 실제로 시도한 것 같지 않습니다. 요점은'coord_flip'이 항상'scales = "free"로 멋지게 재생되는 것은 아니라는 것입니다. 이는 알려진 문제입니다. – joran