web-dev-qa-db-fra.com

Inverser et changer la limite de l'axe

J'essaie de créer un tracé de contour. Je voudrais avoir de la profondeur sur l'axe Y et du temps sur l'axe X. En ce moment, c'est le code que j'utilise:

par <- ggplot(up_PAR, aes(Time.hour.of.the.day., Depth, z = PAR))
parplot <- par + 
           stat_contour(bins=20, aes(colour=..level..))+ 
           scale_colour_gradient(limits=c(0.000842, 0.00000000195),low="black", high="black") +
           scale_y_reverse()+
           theme_bw()+
           theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
           xlab("Hour of the Day")+
           ylab("Depth(m)")+
           ggtitle("Downwelling PAR (photons/m2/s), January 22nd")
direct.label(parplot)

Cependant, je voudrais étendre l'axe de profondeur pour s'étendre de 0 à 30 m. Mon ensemble de données atteint 175 m, mais je ne souhaite que montrer le haut de la colonne d'eau.

Je sais que je peux utiliser scale_y_continuous(limit=c(0,30)) mais comme j'ai déjà inversé mon axe et que je voudrais le garder ainsi, je ne peux pas également définir les limites de l'axe.

30
HAC

Comme l'a déjà souligné @aosmith, utilisez simplement le lim à l'intérieur du scale_y_reverse

library(ggplot2)
set.seed(15)

ggplot(data.frame(x=sort(runif(20, 0, 20)), y=cumsum(runif(20,0 ,2))), aes(x,y)) +
    geom_point() + 
    scale_y_reverse( lim=c(10,0))

enter image description here

53
MrFlick