Я делаю диаграмму единиц / символов в R, которая должна выглядеть почти как вафельная диаграмма с интервалом между каждой категорией. На моем графике каждый столбец имеет фиксированное количество строк и произвольное количество столбцов. Моя главная проблема - расстояние между решетками. Я мог бы использовать приращения, чтобы найти начальные точки для каждого стержня на оси X - см. Мой код ниже - но этот подход работает только тогда, когда каждый стержень имеет фиксированную ширину. В моем случае один столбец может иметь 1 столбец, а другой 3 ... Как я могу решить эту проблему?
values <- c(5, 4, 3, 5, 2, 7)
bar_height <- 5
ylim <- c(0, 5)
xlim <- c(0, 20)
plot(0, 0,
type="n",
xlab="",
ylab="",
bty="n",
xlim=xlim,
ylim=ylim,
asp=1,
axes=FALSE)
padding <- 1
for (i in 1:length(values)) {
num_cols <- ceiling(values[i] / bar_height)
# main issue is to identify starting points (xleft) for each value.#
xleft <- (i-1)*(num_cols+padding)
#
x <- rep(xleft:(xleft+num_cols-1), each=bar_height)[1:values[i]]
y <- rep((1:bar_height), num_cols)[1:values[i]]
symbols(x, y, squares = rep(1, length(x)), inches = FALSE,
add=TRUE, bg="black", fg="white")
}
Спасибо, Сергей