R звездный участок меньше unit.key - PullRequest
0 голосов
/ 05 декабря 2018

Следующая команда сгенерирует звездный график,

stars(mtcars[, 1:7], key.loc = c(14, 1.5), main = "Motor Trend Cars : full stars()")

как уменьшить или увеличить ключ устройства (нижний правый угол)?enter image description here

1 Ответ

0 голосов
/ 05 декабря 2018

Если я правильно понимаю, вы хотите увеличить полигон ключа, оставив тот же размер полигонов данных.К сожалению, это невозможно.Если мы посмотрим на исходный код функции stars(), мы установим, что размер полигонов данных и ключа контролируется одним и тем же аргументом len.

Однако вы можете написать свой собственныйизмененная функция stars(), делающая это возможным.Одним из способов является добавление дополнительного аргумента для раскрытия ключа и определение отдельного аргумента длины для легенды

stars2 <- function (x, key.exp = 1, .....)
{
    key_expansion <- key.exp
    len_legend <- key_expansion * len
    ...
}

. Затем для рисования ключа следует использовать новый аргумент длины len_legendстарый len аргумент.Да, len следует заменить на len_legend внутри кода, который рисует ключевой блок (весь фрагмент кода внутри оператора if (!is.null(key.loc)) { .... }), например:

   if (!is.null(key.loc)) {
        par(xpd = key.xpd)
        key.x <- len_legend * cos(angles) + key.loc[1L]
        key.y <- len_legend * sin(angles) + key.loc[2L]
       ...
   }

Давайте проверим результаты:

pdf("res_stars.pdf")
par(mfrow = c(1, 2))
    stars(mtcars[, 1:7], 
        key.loc = c(14, 1.5), 
        main = "Motor Trend Cars : full stars()",
        cex = 0.3)
    stars2(mtcars[, 1:7], 
        key_expansion = 1.3,
        key.loc = c(14, 1.5), 
        main = "Motor Trend Cars : full stars()",
        cex = 0.3)
dev.off()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...