首页 文章

在ggplot x轴上显示所有日期值 - R.

提问于
浏览
1

在下面的小数据集中,我想在x轴上绘制日期值 . 我希望标记数据框中存在的日期的所有刻度 . 目前它只标记3个随机滴答 . 我可以将列更改为一个因子,但具有日期意味着x轴根据点之间的时间间隔隔开 . 到目前为止,我能找到的唯一答案是每月要显示的问题,或者至少是等间隔的时间间隔 . 我只想在我的数据集中显示值 . 谢谢

Data:

dput(melt)
structure(list(Sample = structure(c(16023, 16023, 16027, 16027, 
16031, 16031, 16035, 16035, 16038, 16038, 16044, 16044, 16023, 
16023, 16027, 16027, 16031, 16031, 16035, 16035, 16038, 16038, 
16044, 16044), class = "Date"), Treatment = structure(c(1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L), .Label = c("T1", "T5"), class = "factor"), 
    variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L
    ), .Label = c("20:5n-3", "20:4n-6"), class = "factor"), value = c(1.21879849498785, 
    1.88548990818282, 1.87990774775065, 1.25350826053539, 3.10352691206175, 
    1.18465888918519, 3.15176346709818, 1.82106970985234, 2.73680349074891, 
    1.58066166099405, 1.43967823968644, 1.51515884762159, 9.25194151767438, 
    9.23279864348857, 14.0535236345336, 9.06572816754405, 9.90634511302451, 
    10.0962470101343, 7.44314990623579, 12.7996706096935, 5.96573623304832, 
    8.070195431115, 2.57433899670204, 11.4388591839374)), row.names = c(NA, 
-24L), class = "data.frame")

Code:

library(ggplot2)

ggplot(melt, aes(x=Sample, y=value, colour=variable, group=variable))+
  facet_wrap(~Treatment)+
  geom_point()+
  geom_line()

Plot:

enter image description here

1 回答

  • 3

    你可以提供 melt$Sample 作为休息时间 . 您可能还想旋转轴标签以避免重叠 .

    ggplot(melt, aes(x = Sample, y = value, colour = variable, group = variable)) +
      facet_wrap(~Treatment) +
      geom_point() +
      geom_line() + 
      scale_x_date(breaks = melt$Sample) + 
      theme(axis.text.x = element_text(angle = 90))
    

    enter image description here

相关问题