2017-09-13 12 views
1

일부 데이터를 두 개의 별도 y 축척으로 플로팅하는 데 문제가 있습니다. 다음은 내가 작업해온 대기 질 데이터의 두 가지 시각화입니다. 첫 번째 그림은 각 오염 물질을 십억 분의 일 크기로 묘사 한 것입니다. 이 그림에서 co은 y 축을 지배하며 다른 오염 물질의 변이는 적절하게 표현되지 않습니다. 대기 질 과학에서 오염 물질 인 co은 일반적으로 10 억분의 1 대신에 백만 분의 일로 표시됩니다. 두 번째 그림은 동일한 no, no2o3 데이터를 보여 주지만 ppb에서 ppm (1000으로 나누기)의 데이터를 co으로 변환했습니다. no, no2o3가 더 잘하면서 그러나, co의 변화는 정당 ggplot facet_grid()를 사용하여 다른 y 축 스케일링을 플로팅 하시겠습니까?

가 y 축의 규모를 정상화 ggplot()를 사용하는 쉬운 방법이 있나요 및 가장의 각 유형을 대표하는 ... 표현되지 않는 오염 물질? 또한 gridExtra를 사용하여 두 개의 개별 플롯을 스티치하고 각 플롯은 원래 y 축척을 유지하는 몇 가지 다른 예제를 통해 작업하려고합니다.

이 수치를 생성하는 데 필요한 데이터가 크므로 (26,295 회 관측) 재현 가능한 예제로 작업하고 있습니다. 희망 솔루션은 ggplot() 코드에서 찾을 수 있습니다 아래에 설명 :

    date id pollutant value 
1 2017-06-16 10:00:00 Pohl  co 236.00 
2 2017-06-16 10:00:00 Pohl  no 23.06 
3 2017-06-16 10:00:00 Pohl  no2 12.05 
4 2017-06-16 10:00:00 Pohl  o3 8.52 
5 2017-06-16 11:00:00 Pohl  co 207.00 
6 2017-06-16 11:00:00 Pohl  no 20.82 

Figure 1

Figure 2

:

여기
plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) + 
    geom_point() + 
    facet_grid(id~pollutant, labeller = label_both, switch = "y") 
plt 

head(df) 같은 값 (ppm하는 co를 변환하기 전에) 모습입니다

+6

'facet_grid (...는 = "free_y를"척도)'각 행은 상이한 Y-을 가질 수 있도록 scale하지만 facet_grid (pollutant ~ id, scales = "free_y")와 같은 행/열 패싯을 전환해야 할 수도 있습니다. – Marius

+1

i를 추가하는 대신 해답을 답으로 사용할 수 있습니다 귀하의 질문에, 그럼 당신은 그것을 해결로 표시 할 수 있습니다. – aosmith

+0

알았어. 마리우스가 기술적으로 질문에 대답 한 이래로 그 것이 정결했는지 나는 확신하지 못했습니다. – spacedSparking

답변

1

마리우스가 지적한 바에는 함수의 210은 원하는 출력을 제공합니다. 감사!

해결책 :

plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) + 
geom_point() + 
facet_grid(pollutant~id, scales = "free_y", labeller = label_both, switch = "y") 
plt 

출력 :

enter image description here