【问题标题】:Plotting dates in r在 r 中绘制日期
【发布时间】:2019-10-05 15:53:49
【问题描述】:

我写了以下绘图命令:

Stripped_DATA <- structure(list(Epoch = structure(c(1110925802, 1110929408, 1110933014, 
                                                    1110936616, 1110940217), 
                                                  class = c("POSIXct", "POSIXt"), 
                                                  tzone = "Europe/Helsinki"), 
                                Timediff = c(-1.4653909261659, -1.46512243581845, 
                                             -1.46505141447328, -1.46503418192427,  -1.46464648029912)), 
                           .Names = c("Epoch", "Timediff"), 
                           row.names = c("11070", "21070", "31070", "41070", "51070"), 
                           class = "data.frame")

plot(Stripped_DATA, main = "Maser-69 hourly averages raw data, -3 < 3 microseconds", xlab = "Date", ylab = "microseconds")
ticks <- seq(as.POSIXct("2005-03-16 00:30:02", format = "%F %T"),
             as.POSIXct("2019-04-19 14:29:55", format = "%F %T"), by = "4 months")
labels <- seq(as.Date("2005-03-16"), as.Date("2019-04-19"), by = "4 months")
axis.POSIXct(1, at = ticks, format = "%Y-%m-%d %H", labels = labels)

它给出了图中显示的 x 轴。如何消除与日期重叠的三年刻度?另外,有没有办法将日期标签从水平变为垂直,以便我可以添加更多日期标签?

【问题讨论】:

  • 您能分享(部分)您正在使用的数据吗?例如,通过粘贴 dput(head(Stripped_DATA, 20)) 的结果。
  • 您可以添加las=23 来旋转绘图中的标签
  • dput(head(stripped_DATA, 5)) 结果:结构(列表(Epoch = 结构(c(1110925802, 1110929408, 1110933014, 1110936616, 1110940217), class= c("POSIXct", "POSIXt "), tzone = "欧洲/赫尔辛基"), Timediff = c(-1.4653909261659, -1.46512243581845, -1.46505141447328, -1.46503418192427, -1.46464648029912)), ".Names = c("nameEpoch",") = c("11070", "21070", "31070", "41070", "51070"), class= "data.frame")
  • 对你来说,使用 ggplot2 包会不会很有趣?
  • 最好通过在此处添加dput() 的输出而不是在评论中来编辑您的问题。

标签: r plot


【解决方案1】:

如果您只想使用刻度,请在使用 xaxt='n' 绘制之前从绘图中删除标签,并使用 las=2 旋转绘图标签

   plot(Stripped_DATA, main = "Maser-69 hourly averages raw data, -3 < 3 microseconds",
         xlab = "Date", ylab = "microseconds" , las=2, xaxt="n")
    ticks <- seq(as.POSIXct("2005-03-16 00:30:02", format = "%F %T"),
                 as.POSIXct("2019-04-19 14:29:55", format = "%F %T"), by = "4 months")
    labels <- seq(as.Date("2005-03-16"), as.Date("2019-04-19"), by = "4 months")
axis.POSIXct(1, at = ticks, format = "%Y-%m-%d %H", labels = labels, las=2)

说明:您的 axis.POSIct() 函数添加了额外的标签。这些可以与您的绘图标签重叠并创建您显示的输出。所以不要用xaxt='n'绘制原始标签

请注意,这只是如果您只想拥有 axis.POSIXct 标签

【讨论】:

  • 如何移除或隐藏 x 轴标题? xlab = NULL 不起作用。
【解决方案2】:

使用您在 cmets 中提供的数据。请注意mischva11 的评论和下面的链接。

Rotating x axis labels in R for barplot

只有plot 函数中的las = 2 参数是必需的。

Stripped_DATA <- structure(list(Epoch = structure(c(1110925802, 1110929408, 1110933014, 
                                                    1110936616, 1110940217), 
                                                  class = c("POSIXct", "POSIXt"), 
                                                  tzone = "Europe/Helsinki"), 
                                Timediff = c(-1.4653909261659, -1.46512243581845, 
                                             -1.46505141447328, -1.46503418192427, 
                                             -1.46464648029912)), 
                           .Names = c("Epoch", "Timediff"), row.names = c("11070", "21070", 
                                                                          "31070", "41070",
                                                                          "51070"), 
                           class = "data.frame")


plot(Stripped_DATA, main = "Maser-69 hourly averages raw data, -3 < 3 microseconds",
     xlab = "Date", ylab = "microseconds", 
     las = 2) # see
ticks <- seq(as.POSIXct("2005-03-16 00:30:02", format = "%F %T"),
             as.POSIXct("2019-04-19 14:29:55", format = "%F %T"), by = "4 months")
labels <- seq(as.Date("2005-03-16"), as.Date("2019-04-19"), by = "4 months")
axis.POSIXct(1, at = ticks, format = "%Y-%m-%d %H", labels = labels)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2011-12-17
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多