Как бы вы положили тень на поле в R?

Я создаю блокпост в R и хочу добавить тень к блоку (аналогично свойству box-shadow в CSS). Мне было интересно, возможно ли это, и если да, то как бы вы это сделали? Благодарю вас

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 предложения.

коробочный участок с тенями

Другие вопросы по тегам