J'ai des problèmes pour tracer certaines données sur deux échelles y séparées. Voici deux visualisations de certaines données sur la qualité de l'air avec lesquelles j'ai travaillé. La première figure représente chaque polluant sur une échelle de parties par milliard d'y. Sur cette figure, co
domine l'axe des Y, et aucune des variations des autres polluants n'est correctement représentée. Dans la science de la qualité de l'air, le polluant co
est classiquement représenté en parties par million au lieu de parties par milliard. La deuxième figure illustre les mêmes données no
, no2
et o3
, mais j'ai converti la concentration co
de ppb
en ppm
(diviser par 1000). Cependant, alors que no
, no2
et o3
regarder mieux, la variation de co
n'est pas représenté à juste titre ...Tracé d'une mise à l'échelle différente de l'axe y à l'aide de ggplot facet_grid()?
est-il un moyen facile en utilisant ggplot()
pour normaliser l'échelle de l'axe y et représentent le mieux chaque type de polluant? J'essaie aussi de travailler à travers d'autres exemples qui utilisent gridExtra pour assembler deux parcelles séparées, chacune conservant ses écailles y originales.
Les données nécessaires pour générer ces chiffres sont énormes (26 295 observations), donc je travaille toujours sur un exemple reproductible. Espérons qu'une solution peut être trouvée dans le code ggplot()
décrit ci-dessous:
plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) +
geom_point() +
facet_grid(id~pollutant, labeller = label_both, switch = "y")
plt
Voici ce que l'head(df)
ressemble (avant de convertir le co
en ppm):
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
'facet_grid (..., échelles = "free_y")' permet chaque ligne d'avoir un autre y- échelle, mais vous devrez peut-être changer la facette de ligne/colonne comme 'facet_grid (pollutant ~ id, scales =" free_y ")' – Marius
Vous pouvez mettre votre solution comme une réponse au lieu d'ajouter i t à votre question, alors vous pouvez le marquer comme résolu. – aosmith
D'accord, je vais le faire. Je n'étais pas sûr si c'était casher puisque Marius était techniquement celui qui répondait à la question. – spacedSparking