Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 按日期划分的子集盒形图,按月份划分的x轴顺序_R_Date_Boxplot - Fatal编程技术网

R 按日期划分的子集盒形图,按月份划分的x轴顺序

R 按日期划分的子集盒形图,按月份划分的x轴顺序,r,date,boxplot,R,Date,Boxplot,我有一年的数据,跨越两个日历年。我想按月为这些数据子集绘制箱线图 绘图将始终按字母顺序(如果我使用月份名称)或数字顺序(如果我使用月份编号)。两者都不符合我的目的 在下面的示例中,我希望x轴上的月份从2013年6月开始,到2014年5月结束 date你在找这样的东西吗: boxplot(df$x ~ reorder(format(df$date,'%b %y'),df$date), outline = FALSE) 我正在使用重新排序根据日期对数据重新排序。我还设置了日期格式,以跳过日期部分

我有一年的数据,跨越两个日历年。我想按月为这些数据子集绘制箱线图

绘图将始终按字母顺序(如果我使用月份名称)或数字顺序(如果我使用月份编号)。两者都不符合我的目的

在下面的示例中,我希望x轴上的月份从2013年6月开始,到2014年5月结束


date你在找这样的东西吗:

boxplot(df$x ~ reorder(format(df$date,'%b %y'),df$date), outline = FALSE) 
我正在使用
重新排序
根据日期对数据重新排序。我还设置了日期格式,以跳过日期部分,因为它是您按月汇总箱线图的结果

编辑: 如果你想跳过年度部分(但为什么?我个人觉得这有点困惑):

EDIT2 a ggplot2解决方案: 因为您从事的是市场营销领域,您正在学习
ggplot2
:)

找到答案-使用一个因素,而不是日期:

set.seed(100)
x <- as.integer(abs(rnorm(365))*1000)

df <- data.frame(date, x)

# create an ordered factor
m <- months(seq.Date(as.Date("2013-06-01"), as.Date("2014-05-31"), "month"))
df$months <- factor(months(df$date), levels = m)

# plot x axis as ordered
boxplot(df$x ~ df$months, outline = FALSE)
set.seed(100)

x我有一个类似的问题,我想在1月到12月之间订购地块。这似乎是人们烦恼的常见原因,以下是我的解决方案:

date <- seq.Date(as.Date("2013-06-01"), as.Date("2014-05-31"), "days")

set.seed(100)
x <- as.integer(abs(rnorm(365))*1000)

months <- month.name
boxplot(x~as.POSIXlt(date)$mon,names=months, outline = FALSE)
日期
library(ggplot2)

ggplot(df) +
  geom_boxplot(aes(y=x,
                   x=reorder(format(df$date,'%B'),df$date),
                   fill=format(df$date,'%Y'))) +
  xlab('Month') + guides(fill=guide_legend(title="Year")) +
  theme_bw()
set.seed(100)
x <- as.integer(abs(rnorm(365))*1000)

df <- data.frame(date, x)

# create an ordered factor
m <- months(seq.Date(as.Date("2013-06-01"), as.Date("2014-05-31"), "month"))
df$months <- factor(months(df$date), levels = m)

# plot x axis as ordered
boxplot(df$x ~ df$months, outline = FALSE)
date <- seq.Date(as.Date("2013-06-01"), as.Date("2014-05-31"), "days")

set.seed(100)
x <- as.integer(abs(rnorm(365))*1000)

months <- month.name
boxplot(x~as.POSIXlt(date)$mon,names=months, outline = FALSE)