gpt4 book ai didi

r - 使用 ggplot scale_x_datetime 的轴标签和限制

转载 作者:行者123 更新时间:2023-12-04 05:29:15 28 4
gpt4 key购买 nike

我想获得带有日期、工作日和时间作为 x 轴标签的漂亮图表。

test <- data.frame(date=seq(as.POSIXct("2012-02-09 00:00:00",tz="CET"),as.POSIXct("2012-02-11 00:00:00",tz="CET"),"hours" ),
value= runif(49) )

ggplot() + geom_line(data=test, aes(x=as.POSIXct(date), y=value)) +
theme(text=element_text(size=16),
legend.text=element_text(size=16),
axis.text=element_text(size=16, colour="black"),
panel.background = element_rect(fill = 'white', colour = 'black'),
axis.title.y = element_text(size=16, vjust = 0.3),
axis.title.x = element_text(size=16, vjust = 0),
legend.key=element_rect(fill="white")) +
scale_x_datetime( breaks = date_breaks("1 days"), labels = date_format("%a-%d\n%H:%M", tz="CET"),
,limits = c(as.POSIXct("2012-02-09 00:00:00 CET"),as.POSIXct("2012-02-11 00:00:00 CET")))

包括 MWE 中包含的 scale_x_datetime,它看起来像这样: enter image description here

有几个问题/问题:

1)如何去除左右两侧的空格?定义limits() 不成功。

2)如何设置显示的时间(小时),或者换句话说,标签放置在哪个时间戳?

3)当我像这样更改时间戳时
test <- data.frame(date=seq(as.POSIXct("2012-02-09 00:59:00",tz="CET"),as.POSIXct("2012-02-11 00:59:00",tz="CET"),"hours" ),
value= runif(49) )

结果图仍然显示时间戳为 00 分钟。有没有办法改变这种情况?

最佳答案

如果您制作日期时间向量并将其提供给 breaks,您就可以完全控制休息时间。争论。下面我用 seq 做了这个.

设置 expand = c(0, 0)停止 ggplot 提供额外的空间。

ggplot(data = test, aes(x = as.POSIXct(date), y = value)) +
geom_line() +
scale_x_datetime(
breaks = seq(as.POSIXct("2012-02-09 00:59:00 CET"),
as.POSIXct("2012-02-11 00:59:00 CET"), "8 hours"),
labels = date_format("%a-%d\n%H:%M", tz = "CET"),
expand = c(0, 0),
limits = c(
as.POSIXct("2012-02-09 00:00:00 CET"),
as.POSIXct("2012-02-11 00:00:00 CET")
)
)

关于r - 使用 ggplot scale_x_datetime 的轴标签和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959566/

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