Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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中组合线和箱线图_R_Lines_Boxplot - Fatal编程技术网

在R中组合线和箱线图

在R中组合线和箱线图,r,lines,boxplot,R,Lines,Boxplot,我试图绘制两个直线图,并在最后添加两个箱线图。我希望箱线图位于线条图的末尾。为此,我想延长我的x轴没有任何标签,并把我的箱线图在这2个空白我想创造 x轴的格式为日期 xrange <- range(xjahredf$datum) yrange <- range(xjahredf[,(names(xjahredf) != "datum")]) maxy <- max(yrange) miny <- min(yrange) # set up the plot plot(

我试图绘制两个直线图,并在最后添加两个箱线图。我希望箱线图位于线条图的末尾。为此,我想延长我的x轴没有任何标签,并把我的箱线图在这2个空白我想创造

x轴的格式为日期

xrange <- range(xjahredf$datum)
yrange <- range(xjahredf[,(names(xjahredf) != "datum")]) 
maxy <- max(yrange)
miny <- min(yrange)


# set up the plot
plot(xrange, yrange, bty = "l", type="n", xlab="Datum",ylab="werte", xaxt="n" )
axis.Date(side = 1, at=seq(xjahredf[1,1],xjahredf[37,1], length.out=12), format= "%Y-%m" , las=2)
colors <- c("red","blue")
boxplot(xjahredf$x1, axes=FALSE, range=0,  ylim=c(miny,maxy), at=16450, add=TRUE, xpd=TRUE, lwd=0.5, col=colors[1], boxwex = 100)
boxplot(xjahredf$x3, axes=FALSE, range=0,  ylim=c(miny,maxy), at=16500, add=TRUE, xpd=TRUE, lwd=0.5, col=colors[2], boxwex = 100)

for (i in 2:ncol(xjahredf)) {

  lines(xjahredf$datum, xjahredf[,i], type="l", lwd=1.5,
    lty=1, col=colors[i-1])
}
xjharedf是我的数据框架,有3列数据/x1/x3

数据格式为日期2012-12-1,然后我们在x1和x3中有一些值。箱线图中的at=16450定义了箱线图在整个图中的位置,但由于xaxis的格式为日期,因此它计算1970年1月1日或类似日期开始的日期

当我现在运行我的脚本时,我得到了2个带有日期格式的右轴的gline和2个重叠的方框图,其中1超出了帧


p、 在美国,我仍然是r的新手,可能缺乏一些基本知识

所以我们做了下面的工作,它成功了。我相信有一种更简单的方法可以做到这一点

我们将df中的date列格式化为character,并在axis函数中提供一个字符向量作为标签。我们使绘图的范围大于标签覆盖的区域,这给我们在图表的末尾带来了空白。我们所做的就是将箱线图与at=参数放在相应的位置。现在只剩下添加行了。希望这能有所帮助

plot(c(0,40), yrange, bty = "l", type="n", xlab="Datum",
 ylab="werte", xaxt="n")
axis(side = 1, at = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36), 
           labels = substr(c("2012-0sub1-01", "2012-02-01", "2012-03-01", "2012-04-01", "2012-05-01", "2012-06-01", "2012-07-01", "2012-08-01", 
                      "2012-09-01", "2012-10-01", "2012-11-01", "2012-12-01", "2013-01-01", "2013-02-01", "2013-03-01", "2013-04-01", 
                      "2013-05-01", "2013-06-01", "2013-07-01", "2013-08-01", "2013-09-01", "2013-10-01", "2013-11-01", "2013-12-01", 
                      "2014-01-01", "2014-02-01", "2014-03-01", "2014-04-01", "2014-05-01", "2014-06-01", "2014-07-01", "2014-08-01", 
                      "2014-09-01", "2014-10-01", "2014-11-01", "2014-12-01", "2015-01-01"),1,7), las=2)
colors <- c("red","blue")
boxplot(xjahredf$x1, axes=FALSE, range=0,  ylim=c(miny,maxy), at=37, add=TRUE, xpd=TRUE, lwd=0.5, col=colors[1], boxwex = 2, alpha = 0.2)
boxplot(xjahredf$x3, axes=FALSE, range=0,  ylim=c(miny,maxy), at=39, add=TRUE, xpd=TRUE, lwd=0.5, col=colors[2], boxwex = 2, alpha = 0.2)

你只是想把几个情节放在一个页面上,如这里所述:是和否。我已经用了你提到的方法,但无法产生我想要的。是的,因为一般来说,箱线图靠近我想要的位置。尽管我希望箱线图更接近我的线的末端不,因为我不需要在bplots上的轴,而不是仅仅把箱线图放在彼此的旁边和我的线的旁边,如果有意义的话,我更喜欢将它们放在一个绘图区域中?问题是,我在直线图中添加的箱线图越多,与整个绘图区域相比,它们占用的空间就越大。谢谢你抽出时间!