当使用gglot的geom_stangraph()创建一个直方图时,每个月的柱状图中的柱状图显示的柱状图中的柱状图没有与正确的日历月份对齐,也没有期望的高度.
我已经寻找了一段时间,但仍然没有找到一个令人满意的解决方案,用标签和箱子准确地反映日历月份来绘制每月数据的直方图.我有2个目标,并已初步try 了第一个目标,但要求协助第二个目标以及.
目标1:[高效]使用ggmap for each 日历月制作一个柱状图,并清楚地标记每个bin的月份
目标2:[高效地]使用ggmap for each 日历月制作一个柱状图,并只清楚地标记日历季度的内容(例如,10月1日至12月31日是2022年第四季度)
下面我展示了一个在2022年11月15日至2023年12月31日期间有400次观测的例子.通过设置种子,我们可以重复地确定2022年11月有16次观测.我的代码显示了试图使用binWidth和Scale_x_Date(DATE_BREAKS)的两个绘图示例,它们都没有生成标签与适当的bin精确对齐的绘图,也没有生成y值为16的第一个bin.
library(ggplot2)
set.seed(123)
# Create a dataframe with 400 random dates between Nov 15 2022 and Dec 31 2023
start_date <- as.Date("2022-11-15")
end_date <- as.Date("2023-12-31")
random_dates <- sample(seq(start_date, end_date, by="days"), 400, replace=TRUE)
df <- data.frame(Date = random_dates)
# There are 16 observations in November 2022
sum(random_dates >= as.Date("2022-11-01") & random_dates <= as.Date("2022-11-30"))
# Using binwidth = 30
ggplot(df, aes(x = Date)) +
geom_histogram(binwidth = 30, fill = "lightgrey", color = "black") +
labs(title = "binwidth = 30 (Nov 15 2022 - Dec 31 2023)",
x = "Date",
y = "Count") +
theme_minimal()
# Using date_breaks = '1 month' (and warning says that it defaults to bins = 30)
ggplot(df, aes(x = Date)) +
geom_histogram(fill = "lightgrey", color = "black") +
scale_x_date(date_breaks = "1 month", date_labels = "%b %Y") +
labs(title = "date_breaks = '1 month' (Nov 15 2022 - Dec 31 2023)",
x = "Date",
y = "Count") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
以下是制作的地块:
Histogram using binwidth = 30 argument个
Histogram using scale_x_date(date_breaks = "1 month")个
先谢谢你