В настоящее время в эту функцию жестко задан предел в 6 символов.Вам нужно взломать его, и место для этого находится в этом разделе:
if (show.labels) {
par(mar = c(0, 0, 0, 4))
par(srt = 90)
obs.labels <- toupper(substr(x$labels[x$order], 1, 6))
if (is.null(members)) {
plot(0, type = "n", xlim = c(0.5, n.indiv + 0.5),
ylim = c(0, 1), xaxs = "i", axes = FALSE, xlab = "",
ylab = "")
text(1:n.indiv, 0, obs.labels, pos = 4, col = col.down[groups.o])
}
Поскольку вы делаете метки длиннее, вам нужно будет либо сжать текст внутри аргумента меток text () с помощьюcex меньше 1 (который теперь жестко запрограммирован по умолчанию, так как не обрабатывается аргумент "...") или потребуется взломать размеры полей в остальной части кода, который устанавливает макет графика.Я проверил это, и это работает , когда используется для замены вышеуказанного раздела в перезаписанной версии этой функции:
if (show.labels) {
par(mar = c(0, 0, 0, 4))
par(srt = 90)
obs.labels <- toupper(substr(x$labels[x$order], 1, 12))
if (is.null(members)) {
plot(0, type = "n", xlim = c(0.5, n.indiv + 0.5),
ylim = c(0, 1), xaxs = "i", axes = FALSE, xlab = "",
ylab = "")
text(1:n.indiv, 0, obs.labels, pos = 4, cex=0.5, col = col.down[groups.o])
}