Если я правильно понимаю, вы хотите увеличить полигон ключа, оставив тот же размер полигонов данных.К сожалению, это невозможно.Если мы посмотрим на исходный код функции 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()