本文介绍了在ggplot x轴上显示所有日期值-R的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In the following little dataset, I would like to plot date values on the x axis. I want all ticks of the dates present in the dataframe to be labelled. At the moment it is only labelling 3 random ticks. I could change the column to a factor, but having as a date means the x axis is spaced according to the time interval between points. So far the only answers I can find are for questions that want to show every month, or at least equally spaced time intervals. I just want to show the values in my dataset. Thank you

数据:

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")

代码:

library(ggplot2)

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

图解:

推荐答案

您可以提供 melt $ Sample 作为中断。您可能还希望旋转轴标签以避免重叠。

You can supply melt$Sample as the breaks. You'll probably also want to rotate the axis labels to avoid overlap.

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))

这篇关于在ggplot x轴上显示所有日期值-R的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 02:31