我在 R 中创建了一个箱线图,并希望为该框添加一个阴影(类似于 CSS 中的 box-shadow 属性)。我想知道这是否可能,如果可以,您将如何做到这一点?谢谢你
问问题
252 次
1 回答
1
就图形美学而言,这肯定是一个不受欢迎的选择,但如果出于某种原因确实需要这样做,实现该效果的一种简单方法是在框下方绘制一些灰色矩形。这是一个使用数据集的快速而肮脏的示例mtcars
。
#Plot and save the dimensions of the boxes
b <- boxplot(mpg~cyl,data=mtcars)
这将返回一个包含对象的列表,该对象stats
包含第二行和第四行中框的 y 坐标。默认设置是在 x=1 处绘制第一个框,宽度为 0.8,因此从 x=0.6 到 x=1.4,依此类推。
#Pick some arbitrary offsets
xoffset <- 0.03
yoffset <- 0.3
#Add a dark gray rectangle slightly offset to each box
rect(0.6+xoffset, b$stats[2,1]-yoffset, 1.4+xoffset, b$stats[4,1]-yoffset, col="darkgray", border=NA)
rect(1.6+xoffset, b$stats[2,2]-yoffset, 2.4+xoffset, b$stats[4,2]-yoffset, col="darkgray", border=NA)
rect(2.6+xoffset, b$stats[2,3]-yoffset, 3.4+xoffset, b$stats[4,3]-yoffset, col="darkgray", border=NA)
#Replot the same boxplot on top of the rectangles using the `add=TRUE` argument.
boxplot(mpg~cyl,data=mtcars, xlab="Number of Cylinders", ylab="Miles Per Gallon",
add=TRUE)
您可能需要进行一些调整,使阴影与框的大小成比例。艺术不是我的事,所以老实说,我不确定它应该如何与光源和透视等一起工作。同样,你可能不想这样做,但你可以自己尝试一下,看看它是如何比较的到提供的其他更好的绘图选项R
。
于 2018-08-30T13:29:01.873 回答