如何在 r 汽车包中的后续情节的完整性中以适当的格式在 x 轴上绘制日期?

Posted

技术标签:

【中文标题】如何在 r 汽车包中的后续情节的完整性中以适当的格式在 x 轴上绘制日期?【英文标题】:How to plot date in a proper format in x-axis in the completeness of the follow-up plot in r car package? 【发布时间】:2022-01-08 21:08:00 【问题描述】:

我正在尝试在r 中绘制后续图的完整性,但是我在以正确的格式绘制日期时遇到了 x 轴的问题,尽管我使用 @ 将其以正确的格式放入数据集中987654325@

我的代码和示例数据集:

Date.Interventon = as.POSIXct('1/27/2017', format='%m/%d/%Y') + 1:40*60
Status<- c ("Alive","Dead","Dead","Dead","Alive","Alive","Dead","Dead","Alive","Dead")
OS.years <-c(11,13,14,13,13,10,13,14,10,11)
data.fu.lorenzoo= data.frame(Date.Interventon,Status, OS.years)

str(Date.Interventon )
library(car)
scatterplot( OS.years ~ Date.Interventon | Status, data=data.fu.lorenzoo, 
             xlab = "Date of procedure",
             ylab = "Follow-up (years)", 
             smooth = F,  # Removes smooth estimate
             regLine = T) # Removes linear estimate


结果图如下所示。 我做了很多trials,但我仍在苦苦挣扎。 任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

我不确定它是否是您需要的,但从您的数据集中,我假设您希望在 x 轴上查看分钟,因为天和小时彼此相似。

使用 lubridate 包中的 minute,您可以以适当的方式更改 x 轴。

car::scatterplot( OS.years ~ minute( Date.Interventon) | Status, data=data.fu.lorenzoo, 
        xlab = "Date of procedure",
        ylab = "Follow-up (years)", 
        smooth = F,  # Removes smooth estimate
        regLine = T) # Removes linear estimate

通过使用不同的包,比如ggplot2,我们可以产生类似的情节。

在继续之前,我更新了 Data.Inverventon 以代表不同的年份。然后使用 zoo 包中的 as.yearmon 函数创建 yearmonth 变量。

Date.Interventon = as.POSIXct('1/27/2017', format='%m/%d/%Y') + 1:40*60000000
Status<- c ("Alive","Dead","Dead","Dead","Alive","Alive","Dead","Dead","Alive","Dead")
OS.years <-c(11,13,14,13,13,10,13,14,10,11)
data.fu.lorenzoo= data.frame(Date.Interventon,Status, OS.years)
data.fu.lorenzoo$yearmonth = zoo::as.yearmon(data.fu.lorenzoo$Date.Interventon)

然后你可以绘制类似的图表

ggplot(data.fu.lorenzoo, aes(x = yearmonth, y = OS.years, color = Status)) + 
  geom_point() + geom_smooth(method = lm, se = FALSE) +
  labs( x = "Date of procedure", y = "Follow-up (years)") +
  theme_minimal()

输出是这样的,

【讨论】:

感谢您的宝贵意见。赞成。是否可以同时绘制月份和年份而不是分钟。问候。如果可能的话,请尝试支持我的问题。 嗨 Mohamed,还有另一个功能是 as.yearmon 来自 zoo 包。您可以更改日期的格式,例如 2020 年 1 月,但是,当您输入 x 轴时,我们看不到月份。我不知道为什么,但它只显示年份。也许它会帮助你。如果我找到解决方案,我会更新我的答案。 非常感谢。赞成。我用过它,现在很有意义。 car::scatterplot( OS.years ~ zoo::as.yearmon ( Date.Interventon) | Status, data=data.fu.lorenzoo, xlab = "Date of procedure", ylab = "Follow-up (years)", smooth = F, regLine = T) 我也用ggplot复现了图,也许对你更好 非常感谢。为您的 cmets 投票。【参考方案2】:

可能不是最好的解决方案,您需要单独格式化轴。

Date.Interventon = as.POSIXct("1/27/2017", format="%m/%d/%y") + 1:40*60
    Status<- c ("Alive","Dead","Dead","Dead","Alive","Alive","Dead","Dead","Alive","Dead")
    OS.years <-c(11,13,14,13,13,10,13,14,10,11)
    
    data.fu.lorenzoo= data.frame(Date.Interventon, Status, OS.years)
    
    
    
    
    library(car)
    scatterplot( OS.years ~ Date.Interventon| Status, data=data.fu.lorenzoo, 
                 xlab = "Date of procedure",
                 ylab = "Follow-up (years)", 
                 smooth = F,  # Removes smooth estimate
                 regLine = T,
                 axes=F) # Removes linear estimate
    axis(2)
    axis(1, Date.Interventon, format( as.POSIXct("1/27/2017", format="%m/%d/%y") + 1:40*60, cex.axis = .7))

【讨论】:

感谢您的宝贵输出。赞成。是否可以只放置年和月而没有日、小时和分钟,并垂直对齐这些日期,以便我们可以放置许多日期。感谢您的宝贵意见。如果可能的话,请尝试支持我的问题。

以上是关于如何在 r 汽车包中的后续情节的完整性中以适当的格式在 x 轴上绘制日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在投资组合分析中以 5% 和最大回报自定义 VaR

R中的撤消布局

如何在 ios swift 中以编程方式将情节提要视图控制器加载到标签栏控制器中?

如何使用 LOOCV 找到比 R 中的完整集分类更好的子集

如何在 R 包中正确使用其他包中的函数

如何在 html 页面中以适当的格式显示 CPP、Java 或任何其他编程语言代码? [关闭]