Управление процентной осью и добавление значений к графику HH Likert

Рассмотрим следующий минимальный пример:

tab = structure(c(187, 189, 205, 167, 273, 275, 295, 231, 385, 575, 
409, 363, 899, 707, 751, 667, 2007, 1953, 2101, 2531, 1043, 1023, 
1071, 971, 385, 575, 409, 363, 181, 241, 157, 163, 123, 163, 
133, 131), .Dim = c(4L, 9L), .Dimnames = list(NULL, c("-4", "-3", 
"-2", "-1", "0", "1", "2", "3", "4")))

Матрица tab содержит количество 9-балльной шкалы Лайкерта.

Базовый сюжет легко составить:

    likert(tab,
           auto.key=list(between=0.5, between.columns=1),
           main="Attitudes",
           BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
           rightAxis=NULL, ylab.right="")

И это выглядит красиво. Теперь о проблемах:

  • Я хотел бы контролировать приращение процентной оси. В некоторых случаях при других показателях он показывает только 50%. Я хочу обеспечить 10% прироста
  • Я хочу добавить% count в качестве метки. Самое главное для 0-категории. Как и в Excel, где вы щелкаете правой кнопкой мыши и говорите "добавить метки данных". Там должно быть что-то подобное.

Я также рассмотрел ggplot, однако он не поддерживает расходящиеся графики. Плюс маркировка тоже довольно грязная, особенно для экспорта тикз.

РЕДАКТИРОВАТЬ Я пытался использовать panel.text. Тем не менее, я до сих пор не выстроил числа правильно.

#does not work right!
trellis.focus("toplevel")
for(pp in 1:nrow(tab)){
panel.text(0.5, (pp/nrow(tab))*0.84+0.16, tab[pp,5], cex = 1, font = 2)
}
trellis.unfocus()

Как я могу найти правильные позиции в каждом баре?

1 ответ

Решение

Изменить x значения оси вы должны добавить аргумент scales= и добавить at= аргумент в пользу x ось.

likert(tab,
       auto.key=list(between=0.5, between.columns=1),
       main="Attitudes",
       BrewerPaletteName="RdBu",as.percent=TRUE, rightAxisLabels=NULL, 
       rightAxis=NULL, ylab.right="",
       scales=list(
         x=list(
           at=seq(-50,50,10))))
Другие вопросы по тегам