R график: размер фона легенды

#r #plot #legend #scatter-plot

#r #график #легенда #точечный график

Вопрос:

Я создаю график (в частности, точечный график), используя R, и заметил, что размер фона легенды излишне велик (как показано ниже):

введите описание изображения здесь

Есть ли какой-либо способ уменьшить площадь?

Я попытался изменить cex , но это уменьшило не только площадь, но и размер шрифта. Я хочу сохранить размер шрифта, но уменьшить область легенды.

На всякий случай я приложил код легенды, который я использовал:

 legend(x="bottomleft", legend = c("Survived (0)", "Died (1)"), 
         col=c(1:length(levels(Noadr.for.plot2$Death))), pch = c(19, 17),
         y.intersp = 0.4,
         bg = "gray")
 

[ОБНОВЛЕНО]
Здесь пересмотренный сюжет. Я смог изменить ширину текста, но не высоту (как показано ниже):
введите описание изображения здесь

Ответ №1:

Вы можете сделать следующее:

 attach(mtcars)
plot(wt, mpg, main="Scatterplot Example",
     xlab="Car Weight ", ylab="Miles Per Gallon ", pch=19)
# op <- par(cex = 1)

text = c("Survived (0)", "Died (1)")
cex_val = 1

legend(x="bottomleft", legend = text,
       pch = c(19, 17), cex=cex_val,
       y.intersp = 1,
       bg = "gray",
       text.width = strwidth(text)[1]*cex_val)
 

Часть ширины легенды определяется наибольшей шириной используемых вами надписей, которая вычисляется с помощью strwidth so, установив для нее ширину текста, вы можете уменьшить поле, сохранив размер шрифта.

Комментарии:

1. @@David S Привет, Дэвид! Спасибо за комментарий. Я успешно работал! Тем не менее, я смог изменить ширину текста, а не высоту. Пожалуйста, посмотрите на рисунок выше (я загрузил обновленный рисунок). Я предположил, что будет функция, похожая на text.height, но, к сожалению, ее не существует…