Как установить пределы оси даты в ggplot2? - PullRequest
0 голосов
/ 07 мая 2020

Вот мои данные:

structure(list(IDday = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 3L, 4L, 6L, 6L, 16L, 22L, 22L, 
24L, 24L, 27L, 26L, 25L, 24L, 25L, 23L, 25L, 25L, 24L, 27L, 25L, 
23L, 23L, 24L, 22L, 23L, 24L, 25L, 26L, 25L, 26L, 21L, 21L, 18L, 
14L, 14L, 12L, 12L, 9L, 10L, 9L, 10L, 10L, 9L, 3L, 6L, 4L, 3L, 
3L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 3L, 1L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 1L, 1L, 2L, 4L, 5L, 10L, 12L, 13L, 12L, 14L, 
15L, 17L, 18L, 16L, 17L, 18L, 19L, 18L, 18L, 18L, 18L, 18L, 18L, 
18L, 17L, 18L, 18L, 18L, 18L, 17L, 16L, 17L, 17L, 17L, 16L, 16L, 
16L, 16L, 16L, 16L, 16L, 16L, 14L, 12L, 12L, 13L, 10L, 9L, 9L, 
8L, 8L, 9L, 5L, 6L, 4L, 2L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 1L, 1L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Date2 = structure(c(17591, 
17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 
17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 
17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 
17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 
17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 
17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 
17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 
17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 
17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 
17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 
17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 
17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 
17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 
17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 
17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 
17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 
17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 
17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 
17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 
17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 
17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 
17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 
17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 
17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 
17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 
17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 
17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 
17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 
17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 
17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 
17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 
17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 
17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 
17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 
17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 
17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 
17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 
17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 
17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 
17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 
17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 
17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 
17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 
17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 
17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 
17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 
18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 
18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 
18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 
18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 
18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 
18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 
18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 
18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 
18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 
18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 
18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 
18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 
18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 
18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 
18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 
18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 
18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 
18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 
18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 
18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 
18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 
18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 
18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 
18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 
18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 
18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 
18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 
18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 
18258, 18259, 18260, 18261), class = "Date")), class = "data.frame", row.names = c(NA, 
-671L))

Я пытаюсь распечатать tiff-изображение графика, созданного в R, используя приведенный ниже код.

tiff("test.tiff", units="in", width=10, height=5, res=300)

ggplot(letssend2, aes(x = Date2))+
  geom_point(aes(y = IDday))+ ylab('Number of Tagged Fish')+
  theme_classic()+
  theme(axis.text = element_text( size = 14))+
  theme(text = element_text( size = 14))+
  scale_x_date(date_breaks = "1 month", date_labels = "%b %Y", limits = as.Date(c("01/03/2018", "01/01/2020"), format = '%d/%m/%Y'))+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

dev.off()

Что приводит к прикрепленному изображению, которое показывает дополнительные месяцы, а февраль 2020 обрезается.

enter image description here

Однако даже хотя я включаю аргумент limits в scale_x_date(), сюжет не обрывается в эти даты. Я пробовал решения из этого по существу идентичного вопроса, и ни одно из них не сработало.

1 Ответ

1 голос
/ 07 мая 2020

ggplot2 разворачивает оси. Вы можете предотвратить расширение оси x, установив expand = c(0,0) в scale_x_date.

Однако это может нежелательно обрезать этикетки. Возможно, лучший вариант - дать паузы, установив

breaks = seq(as.Date("01/03/2018", '%d/%m/%Y'), as.Date("01/01/2020", '%d/%m/%Y'), by = "month")

в scale_x_date вместо date_breaks = "1 month".

...