Je suis aux prises avec le problème suivant. Considérez ceci (simple) exempleggplot: comment aligner deux tracés de séries chronologiques sur l'axe x?
library(grid)
library(gridExtra)
library(gtable)
library(dplyr)
library(lubridate)
options("digits.secs"=3)
time1 = c('2013-01-03 22:04:21.549', '2013-01-03 22:04:22.549', '2013-01-03 22:04:23.559', '2013-01-03 22:04:24.559')
value1 = c(1,2,3,4)
data1 <- data_frame(time1, value1)
data1 <- data1 %>% mutate(time1 = ymd_hms(time1))
time2 = c('2013-01-03 22:04:21.800', '2013-01-03 22:04:22.549', '2013-01-03 22:04:25.559', '2013-01-03 22:04:26.559')
value2 = c(1,2,3,4)
data2 <- data_frame(time2, value2)
data2 <- data2 %>% mutate(time2 = ymd_hms(time2))
g1 <- ggplot(data1, aes(x = time1, y = value1)) +geom_point()
g2 <- ggplot(data2, aes(x = time2, y = value2)) +geom_point()
graph_1 <- arrangeGrob(g1, g2, ncol=1)
grid.draw(graph_1)
qui donne
que vous pouvez voir l'axe X- est pas correctement aligné. Des idées comment faire cela? Les solutions alternatives telles que How to align two plots with ggplot? ne fonctionnent pas ici.
Merci beaucoup !!
salut @Jas onWang votre belle (première) solution se casse si les unités de l '«axe y» contiennent un nombre différent de chiffres. dire 'value2 = c (100,200,300,400)'. Savez-vous comment résoudre ce problème? –
Je pense que le meilleur moyen est d'utiliser le second avec 'facet_grid (groupe ~., Scales =" free_y ")'. Pour le premier, la façon dont je suis arrivé est d'ajuster la longueur de l'étiquette y par 'scale_y_continuous (labels = function (x) {paste0 (" 00 ", x)})'. – JasonWang
Ou vous devez savoir quel est l'espace et utiliser le 'theme' pour ajuster la marge. – JasonWang