gpt4 book ai didi

r - 如何在R中绘制一年中的日出?

转载 作者:行者123 更新时间:2023-12-01 09:25:32 28 4
gpt4 key购买 nike

我的日期如下所示:

"date", "sunrise"
2009-01-01, 05:31
2009-01-02, 05:31
2009-01-03, 05:33
2009-01-05, 05:34
....
2009-12-31, 05:29

我想在 R 中绘制它,以“日期”为 x 轴,“日出”为 y 轴。

最佳答案

您需要付出更多努力才能让 R 绘制合适的图(即获得合适的轴)。假设我有与您类似的数据(为方便起见,在 csv 文件中:

"date","sunrise"
2009-01-01,05:31
2009-01-02,05:31
2009-01-03,05:33
2009-01-05,05:34
2009-01-06,05:35
2009-01-07,05:36
2009-01-08,05:37
2009-01-09,05:38
2009-01-10,05:39
2009-01-11,05:40
2009-01-12,05:40
2009-01-13,05:41

我们可以以格式读取数据并适本地格式化它,以便 R 了解数据的特殊性质。 read.csv() 调用包含参数 colClasses,因此 R 不会将日期/时间转换为因子。

dat <- read.csv("foo.txt", colClasses = "character")
## Now convert the imported data to appropriate types
dat <- within(dat, {
date <- as.Date(date) ## no need for 'format' argument as data in correct format
sunrise <- as.POSIXct(sunrise, format = "%H:%M")
})
str(dat)

现在有点棘手,因为如果你这样做,R 的轴就会出错(或者更好地说它们不是我们想要的)

plot(sunrise ~ date, data = dat)
## or
with(dat, plot(date, sunrise))

第一个版本的两个轴都错误,第二个版本可以在日期上正确分派(dispatch),因此 x 轴正确,但 y 轴标签不正确。

因此,抑制轴的绘制,然后使用 axis.FOO 函数自行添加它们,其中 FOODatePOSIXct:

plot(sunrise ~ date, data = dat, axes = FALSE)
with(dat, axis.POSIXct(x = sunrise, side = 2, format = "%H:%M"))
with(dat, axis.Date(x = date, side = 1))
box() ## complete the plot frame

HTH

关于r - 如何在R中绘制一年中的日出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3766586/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com