Рисовать границы в барах в барплоте? - PullRequest
2 голосов
/ 17 августа 2011

Я рисую простой барплот с толстыми рамками:

par(lwd=3)
barplot(c(6,7))
arrows(0,0,10,0,lwd=1)

Границы слегка выступают над осью X, что выглядит плохо.

Есть ли способ нарисовать границу внутри каждого бара, а не вокруг него?

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Лучшее, что я могу придумать, - это что-то взломать вручную, установив border = NA в barplot, а затем добавив границы, используя lines:

par(lwd = 3, lend = 2)
barplot(c(6,7),border = NA)
lines(c(0.2,0.2,1.2,1.2),c(0.02,6,6,0.02))
lines(c(1.4,1.4,2.4,2.4),c(0.02,7,7,0.02))

enter image description here

Это далеко от идеала. Координаты, использованные в lines, предполагают, что по умолчанию расстояние между барами равно 0,2, а натяжение дна до 0,02 основано на том, что я смотрю на него. Возможно, вам придется возиться с этим в каждом конкретном случае.

0 голосов
/ 18 августа 2011

Мое предложение после того, как не удалось найти клип () - ping или простой «внутренний бордюр», является следующим предложением:

opar <- par(lwd=3)
barplot(c(6,7))
arrows(0,0,10,0,lwd=3, col="grey")
par(opar)

Преимущество в том, что он не обрезает верхнюю частьболее высокие бары.Спорим, ты этого не заметил.Я не заметил этого, пока не использовал lwd = 10.

...