Подтвердить что ты не робот

Текстура в баррель для 7 баров в R?

У меня есть 7 разных категорий для каждого значения в X. Я использую barplot для построения этих категорий. Такой график отлично выглядит в принтерах цветов, но что, если я хочу, чтобы это было хорошо в черно-белом режиме. Вы можете проверить график ниже. Я хочу иметь текстуру разных цветов, поэтому график хорошо выглядит в цвете и черно-белом принтере.

enter image description here

Я использовал плотности = c (10,30,40,50,100,60,80) для параметра плотности в функции барплота. Есть ли другие способы делать разные текстуры в barplot?

Примечание. Я попробовал значение угла в barplot. Однако в этом случае это нехорошее решение, поскольку не все бары имеют высокие значения (например, высоту бара).

4b9b3361

Ответ 1

В соответствии с моими комментариями вы можете найти следующее сообщение:

# data generation ---------------------------------------------------------
set.seed(1)
mat <- matrix(runif(4*7, min=0, max=10), 7, 4)
rownames(mat) <- 1:7
colnames(mat) <- LETTERS[1:4]


# plotting settings -------------------------------------------------------
ylim <- range(mat)*c(1,1.5)
angle1 <- rep(c(45,45,135), length.out=7)
angle2 <- rep(c(45,135,135), length.out=7)
density1 <- seq(5,35,length.out=7)
density2 <- seq(5,35,length.out=7)
col <- 1 # rainbow(7)


# plot --------------------------------------------------------------------
op <- par(mar=c(3,3,1,1))
barplot(mat, beside=TRUE, ylim=ylim, col=col, angle=angle1, density=density1)
barplot(mat, add=TRUE, beside=TRUE, ylim=ylim, col=col, angle=angle2, density=density2)
legend("top", legend=1:7, ncol=7, fill=TRUE, col=col, angle=angle1, density=density1)
par(bg="transparent")
legend("top", legend=1:7, ncol=7, fill=TRUE, col=col, angle=angle2, density=density2)
par(op)

enter image description here