Таблица единиц / пиктограмм в R

Я делаю диаграмму единиц / символов в 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")
}

Спасибо сергей

0 ответов

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