R箱线图宽度

R箱线图宽度,r,date,plot,boxplot,R,Date,Plot,Boxplot,我正在R中绘制散点图,并希望添加箱线图。x轴是日期,y轴是权重。我想想象一下体重随时间的变化,因此每周都应该有一个箱线图。但是,箱线图的宽度太小。这就是我目前拥有的: 箱线图绘制如下: data <- read.table("weight2.txt", header=TRUE) data$datetime <- strptime(paste(data$Date, data$Time), "%d.%m.%Y %H:%M") data$week <- strftime(data$

我正在R中绘制散点图,并希望添加箱线图。x轴是日期,y轴是权重。我想想象一下体重随时间的变化,因此每周都应该有一个箱线图。但是,箱线图的宽度太小。这就是我目前拥有的:

箱线图绘制如下:

data <- read.table("weight2.txt", header=TRUE)
data$datetime <- strptime(paste(data$Date, data$Time), "%d.%m.%Y %H:%M")
data$week <- strftime(data$datetime,format="%W")
data$timestamp <- as.numeric(data$datetime)

plot(data$datetime, data$Weight, xlab="Date",
    ylab="Weight", ylim=c(61,68))

library(plyr)
dt <- data.table(data)

aggrWeek <- ddply(dt,~week,summarise,
              min=min(Weight),
              firstQ=quantile(Weight,0.25),
              mean=mean(Weight),
              thirdQ=quantile(Weight,0.75),
              max=max(Weight),
              timestamp=mean(timestamp))
aggrWeek$datetime <- as.POSIXct(aggrWeek$timestamp, origin="1970-01-01")

boxplotData <- t(
    data.frame(aggrWeek$min, aggrWeek$firstQ, aggrWeek$mean, aggrWeek$thirdQ, aggrWeek$max))

bxp(list(
  stats=data.matrix(boxplotData), n=rep(1,ncol(boxplotData))), 
    add=TRUE, at=aggrWeek$datetime, show.names=FALSE)

data正如我所想,您的x值是POSIXt日期,自1970年1月1日起存储为秒数。所以如果你的宽度是1,你基本上画了一个“1秒”宽的方框图,在这个范围内是非常小的。如果你想要一个“1天”宽的方框图,试试看

bxp(list(
  stats=data.matrix(boxplotData), n=rep(1,ncol(boxplotData))), 
    add=TRUE, at=aggrWeek$datetime, show.names=FALSE, boxwex=60*60*24)


用一个可复制的例子看看这是多么容易

width
参数用于
bxp()
?请提供包含示例数据的。我的猜测是
width=
boxwex=
正在工作,但是如果您的日期值是posixctupdate post,那么您将它们设置得太小了。