gpt4 book ai didi

r - x 轴上的 ggplot 月度日期刻度使用天作为单位

转载 作者:行者123 更新时间:2023-12-05 03:00:10 30 4
gpt4 key购买 nike

在绘制包含月度数据的条形图时,ggplot 缩短了二月和三月之间的距离,使图表看起来不一致here is an example

  require(dplyr)
require(ggplot2)
require(lubridate)


## simulating sample data

set.seed(.1073)
my_df <- data.frame(my_dates = sample(seq(as.Date('2010-01-01'), as.Date('2016-12-31'), 1), 1000, replace = TRUE))


### aggregating + visualizing counts per month

my_df %>%
mutate(my_dates = round_date(my_dates, 'month')) %>%
group_by(my_dates) %>%
summarise(n_row = n()) %>%
ggplot(aes(x = my_dates, y = n_row))+
geom_bar(stat = 'identity', color = 'black',fill = 'slateblue', alpha = .5)+
scale_x_date(date_breaks = 'months', date_labels = '%y-%b') +
theme(axis.text.x = element_text(angle = 60, hjust = 1))

最佳答案

我会将日期保留为日期而不是因素。是的,因数将使条形的大小保持一致,但您必须记住加入任何缺失的月份,这样就不会跳过空白月份,并且因数很容易乱序。我建议调整您的审美,以减少黑色轮廓对二月和三月之间的差距的影响。

这里有两个例子:

  • 将轮廓颜色调整为白色。这将降低对比度并使间隙不那么明显。
  • 将宽度设置为 20(天)。

顺便说一句,您不需要汇总数据,您可以在前面的步骤中使用floor_date()round_date() 并直接进入geom_bar()

dates <- seq(as.Date("2010-01-01"), as.Date("2016-12-31"), 1)

set.seed(.1073)
my_df <-
tibble(
my_dates = sample(dates, 1000, replace = TRUE),
floor_dates = floor_date(my_dates, "month")
)

ggplot(my_df, aes(x = floor_dates)) +
geom_bar(color = "white", fill = "slateblue", alpha = .5)

ggplot(my_df, aes(x = floor_dates)) +
geom_bar(color = "black", fill = "slateblue", alpha = .5, width = 20)

enter image description here

关于r - x 轴上的 ggplot 月度日期刻度使用天作为单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57166765/

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