首页 > 解决方案 > R:如何在条形图中显示范围?

问题描述

尝试生成与 excel 相同的条形图,但在 R 中可以吗?想要显示每周订单的总数。按用户的开始和结束日期计算。

User            Due_date            Status  

a               02-10-2017          Complete
b               02-02-2017          Ordered
a               02-08-2017          Complete
c               02-08-2017          Complete
a               02-08-2017          Ordered
s               02-06-2017          Complete
c               02-06-2017          Complete
s               02-06-2017          Ordered
b               02-06-2017          Ordered
c               02-11-2017          Complete
a               02-11-2017          Ordered
s               02-11-2017          Ordered
c               02-01-2017          Complete
s               02-01-2017          Ordered
b               02-01-2017          Complete
b               02-10-2017          Complete

尝试生成报告但不显示在excel中显示的范围,请检查代码和随附的屏幕截图。

library(lubridate)
Data$Week_Due = (ceiling_date(Data$Due.Date, "week") +  ifelse(weekdays(Data$Due.Date) %in% c("Saturday", "Sunday"), 5,-2))

library(rpivotTable)
rpivotTable(Data,  aggregatorName = "Count",  rows = "User",  cols = c("Week_Due","User","Status"),  width = "100%",  height = "500px",rendererName = "Bar Chart")

单击此处获取屏幕截图

标签: rexcelggplot2plotlybar-chart

解决方案


好的 - 这是一个更详细的示例,应该更接近您想要实现的目标:要修改 x 轴上的标签以显示日期范围,您需要放入一个简单的函数。而且,我使用breaksdate_breaks是为了将刻度线或多或少地移动到直方图条形下方的中间。

ggplot(Data, aes(x = Due_date)) + geom_histogram(binwidth = 7) + 
    scale_x_date(breaks = seq(min(Data$Due_date), max(Data$Due_date), by = 7),
        labels = function(x) paste0(format(x, "%d-%m-%Y"), ", ", format(x+7, "%d-%m-%Y"))) +
    theme(axis.text.x = element_text(angle = 45, hjust = 1))

推荐阅读