【问题标题】:Missing x axis labels in R plotR图中缺少x轴标签
【发布时间】:2015-04-23 12:05:29
【问题描述】:

我有三个数据框,我知道的数据不是很令人兴奋,但这不是我要解决的问题。

  > Ascidcv
             Date   Average       SE
    3  2014-09-01 37.250000 6.326673
    15 2014-10-02  6.285714 2.738613
    > Ascidc1
              Date Average SE
    3   2014-10-15       0  0
    34  2014-11-12       0  0
    62  2014-12-11       0  0
    88  2015-02-11       0  0
    119 2015-03-09       0  0
    > Ascidc2
              Date Average SE
    18  2014-10-15       0  0
    48  2014-11-12       0  0
    75  2014-12-11       0  0
    103 2015-02-11       0  0
    135 2015-03-09       0  0

我使用这些数据框来绘制图表:

plot(Ascidcv$Date, Ascidcv$Average, type='p', pch=4, col="red", xlab='Date', ylab='', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"), as.Date("2015-03-09")), ylim=c(0,120))
points(Ascidc1$Date, Ascidc1$Average, type='p', pch=19, xlab='Date', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100))
points(Ascidc2$Date, Ascidc2$Average, type='p', pch=2, col="blue", xlab='Date', ylab='Average num ind.', main=expression(italic('Bugula sp.')), xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100))
mtext("Average % cover",side=2,line=3)

由于某种原因,只有 9 月、10 月和 3 月的月份被绘制在 x 轴上,而 11 月至 2 月没有出现。我确信这是一个非常简单的修复,但我似乎无法弄清楚。任何帮助将不胜感激!谢谢!

【问题讨论】:

  • 这是因为您首先绘制“Ascidcv”,它没有所有月份。

标签: r plot axis-labels


【解决方案1】:

您可以分两步完成您的情节:

首先,你的情节没有轴

plot(Ascidcv$Date, Ascidcv$Average, type='p', pch=4, col="red", xlab='Date',
     ylab='', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"), 
     as.Date("2015-03-09")), ylim=c(0,120),xaxt="n")

然后,在 2014 年 9 月到 2015 年 3 月的每个月的第一天添加带有刻度的轴 带有axis.Date 和相应日期的向量

axis.Date(1, at=as.Date(c(paste0("2014-",c("09",10:12),"-01"),
          paste0("2015-0",1:3,"-01"))))

最后,添加其他点和文字

points(Ascidc1$Date, Ascidc1$Average, type='p', pch=19, xlab='Date', 
       main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"),
       as.Date("2014-12-11")), ylim=c(0,100))

points(Ascidc2$Date, Ascidc2$Average, type='p', pch=2, col="blue", xlab='Date', 
       ylab='Average num ind.', main=expression(italic('Bugula sp.')), 
       xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100))

mtext("Average % cover",side=2,line=3)

【讨论】:

  • @DavidArenburg,感谢您的编辑,使它更加清晰! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-17
  • 2020-10-06
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多