我正在尝试在R中创建一个简单的条形图,该条形图将日期和金额按月份分组。
尽管我对R有基本的了解,但我仍在努力理解为什么它的行为方式如此。
到目前为止,这是我的进步:
如您所见,我正在使用两个简单变量:amount_net表示金额,month_year_begindate表示时间序列。这是我的数据示例:
> head(df)
amount_net month_year_begindate
1 3306.11 2017-10-01
2 5471.28 2018-07-01
3 4584.86 2018-07-01
4 5923.76 2018-07-01
5 3830.59 2018-07-01
6 4035.04 2018-07-01
这是我用来创建图形的代码:
require(ggplot2)
require(scales)
g <- ggplot(data = df)
g + geom_bar(aes(x = month_year_begindate , y = amount_net), stat="identity",
colour = "dodgerblue3") +
scale_x_date(date_breaks = "1 month", labels = date_format("%B de %Y")) +
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))
但是,我无法理解两个基本知识:
limits = as.Date(c('2019-01-01', '2019-05-01'))
,则会看到相同的行为(开头和结尾的值显示为空)。能帮助我理解和解决这个问题的人吗?
答案 0 :(得分:1)
在我看来,问题可能是由于过多的width
条引起的。请参见此示例以及您的玩具数据(注意,我已按日期对其进行了汇总):
library(data.table)
dt[, month_year_begindate := lubridate::ymd(month_year_begindate)]
ggplot(dt[, .(amount_net = sum(amount_net)), by = month_year_begindate]) +
geom_bar(aes(x = month_year_begindate , y = amount_net),
stat="identity",
fill = "dodgerblue3",
width = 5) +
scale_x_date(date_breaks = "1 month", labels = date_format("%B de %Y")) +
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))