gpt4 book ai didi

r - 如何更改 x 轴刻度以反射(reflect)另一个变量?

转载 作者:行者123 更新时间:2023-12-05 02:45:37 25 4
gpt4 key购买 nike

我正在使用一个包含观察日期和月份的数据框:

Day     Month      
1 January
2 January
3 January
...
32 February
33 February
34 February
...
60 March
61 March

等等。我在 ggplot 中创建了一个折线图,它反射(reflect)了 wp 列的每日值(可以假设它是 0 到 1 之间的随机值)。

enter image description here因为数据集中有这么多天,我不想让它们反射(reflect)在 x 轴刻度线中。我需要在创建绘图时引用 day 列,以便我可以看到 wp 中的每日变化,但我只想在 x 轴标签上显示月份。我可以使用 xlab("Month") 轻松重命名 x 轴标题,但我不知道如何更改刻度线以仅显示月份。所以理想情况下,我希望看到“一月”、“二月”和“三月”作为 x 轴上的标签。

test <- ggplot(data = df, aes(x=day, y=wp)) +
geom_line(color="#D4BF91", size = 1) +
geom_point(color="#D4BF91", size = .5) +
ggtitle("testex") +
xlab("Day") +
ylab("Value") +
theme_fivethirtyeight() + theme(axis.title = element_text())

最佳答案

当我将这一天视为实际日期时,我得到了想要的结果:

library(lubridate)
set.seed(21540)
dat <- tibble(
date = seq(mdy("01-01-2020"), mdy("01-01-2020")+75, by=1),
day = seq_along(date),
wp = runif(length(day), 0, 1)
)

ggplot(data = dat, aes(x=date, y=wp)) +
geom_line(color="#D4BF91", size = 1) +
geom_point(color="#D4BF91", size = .5) +
ggtitle("testex") +
xlab("Day") +
ylab("Value") +
theme(axis.title = element_text())

enter image description here

更一般地说,尽管您可以使用 scale_x_continuous() 来执行此操作:

library(lubridate)
set.seed(21540)
dat <- tibble(
date = seq(mdy("01-01-2020"), mdy("01-01-2020")+75, by=1),
day = seq_along(date),
wp = runif(length(day), 0, 1),
month = as.character(month(date, label=TRUE))
)

firsts <- dat %>%
group_by(month) %>%
slice(1)


ggplot(data = dat, aes(x=day, y=wp)) +
geom_line(color="#D4BF91", size = 1) +
geom_point(color="#D4BF91", size = .5) +
ggtitle("testex") +
xlab("Day") +
ylab("Value") +
scale_x_continuous(breaks=firsts$day, label=firsts$month) +
theme(axis.title = element_text())

enter image description here

关于r - 如何更改 x 轴刻度以反射(reflect)另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65874898/

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