2011-02-18 4 views
3

패싯에 사용되는 요소의 사용되지 않은 수준에 대해 패널을 포함 할 수 있습니까?ggplot2를 사용하여 패싯에 사용하지 않은 요소 수준 포함

다른 측정 값을 표시하는 행에 여러 개의 개별 플롯을 배열하고 있습니다. 각 행의 열 수는 facet_grid 개입니다. 각 플롯은 열별로 정렬되어야합니다.

그러나 행 중 하나에 대한 데이터에 특정 패싯 수준의 데이터가 누락되면 패널 수가 달라지고 열이 정렬되지 않습니다. 예를 들어, 마지막 행은 "수학 II"패널없는주의 사항 :

Example plot http://dl.dropbox.com/u/14792859/ggplot2%20facet%20levels.png

내가 생각할 수있는 유일한-주위에 작업이 누락 된 패싯 레벨 더미 데이터 점을 포함하는 것입니다,하지만 난 더 쉽고/깨끗한 방법이 있다는 것을 듣고 싶습니다.

+0

각 플롯에 대해 동일한 데이터 프레임을 사용하고 있습니까, 아니면 각각에 대해 새로운 데이터 프레임을 만드시겠습니까? – James

+1

facet_wrap (..., drop = FALSE)는 ggplot2 내 버전에서 작동하지는 않지만 보이지는 않습니다 - ggplot2 목록에 쿼리를 보냈습니다 –

+0

@James 각 플롯마다 다른 data.frame입니다. 그러나 faceting을위한 변수가 같은 레벨 (예를 들어'factor (df $ subject, levels = union (수준 (df $ subject, other.df $ subject))) '요소와 같은지 확인합니다. –

답변

3

Ben Bolker가 언급했듯이 이것은 plyr의 버그로 인해 ggplot2에 버그가있는 것으로 보입니다. 이것은 곧 출시 될 plyr 1.5 릴리스에서 수정 될 예정입니다. 한편

  • plyr fix
  • ggplot2 mailing list thread
    • , 나는 다른 조치를 지정하는 행을 작성하려는으로, 하나의 플롯을 생성하고 facet_grid를 사용하여 문제를 해결했다. 이 문제는 두 개의 하단 패널에 다른 scale_fill_manual을 지정할 수 없기 때문에 대신 중간 패널의 획 색상을 사용했습니다. 이상적인 것은 아니지만 지금은 충분합니다.

      이 문제를 파악하고 메일 링리스트 대화를 시작해 주신 Ben 께 감사드립니다.

    관련 문제