R语言 将一年中的天数转换为月份

1sbrub3j  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(350)

我有一个数据框架,其中一列是时间。时间列是ODE方程组模拟的结果。我想将时间列转换为一年中的月份。

df <- data.frame(time = c(1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100), 
                 population = c(100, 200, 250, 320, 410, 400, 380, 365, 300, 275, 215))

ggplot(df, aes(x=time, y=population))+
  geom_line()

这将生成一个时间序列图,x轴上的时间为1到100之间的数字。我希望将此时间更改为从1月开始的月份。

bksxznpy

bksxznpy1#

你可以先将你的时间转换成月份,然后使用scale_x_continuousmonth.name来得到正确的breaks,如下所示:

library(dplyr)
library(ggplot2)
df %>%
  mutate(num_month = round(time/30.417) + 1) %>%
  ggplot(aes(x=num_month, y=population)) + 
  geom_line() +
  scale_x_continuous(breaks = seq_along(month.name), labels = month.name)

创建于2023-04-24带有reprex v2.0.2

von4xj4u

von4xj4u2#

month.abb 给予缩写的月份标签,从数字月份1=Jan,2=Feb...
如果时间以天为单位:

days = c(1,10,20,30,40,50,60,70,80,90,500,600,1000)
months <- round(days/30.417,0)
month.abb[months %% 12]

相关问题