проблема с выравниванием строк и поля в легенде R

#r #plot #legend

#r #сюжет #легенда

Вопрос:

У меня есть легенда со строками и одним полем. Я пытаюсь выровнять поле по линиям. Я попытался изменить первое значение в x.intersp=c (1 и т.д.) На 0,5 и -0,5, но, похоже, это перемещает текст, а не поле. Любая помощь будет оценена.

Пример кода

 x<-c(1,2,3,4)
y<-c(1,2,3,4)

plot(x,y)

mygray<-"gray"

#add legend
legend("bottomleft", legend = c("Survey Domain", "CA II Access Area","2020 SAMS Areas","EEZ"),
       bg="white",cex=1,
       bty="n",col=c(NA,"black","red","black"),
       lty = c(NA,1,1,1),
       fill=c(mygray,NA,NA,NA),
       lwd=c(NA,2,2,1),border = c("black",NA,NA,NA), 
       seg.len=0.8,y.intersp=1,x.intersp=c(1,1,1,1)) 
  

Ответ №1:

Я думаю, вам нужно сделать это за 2 шага, чтобы объединить поля и строки, поскольку они будут отображаться рядом друг с другом, а не вместо этого, если указаны оба. Например.:

 x <- c(1,2,3,4)
y <- c(1,2,3,4)

mygray <- "#cccccc"

plot(x,y)

#add legend
legend(
  "topleft",
  legend = c("a","b","c","d"),
  fill   = c(mygray,NA,NA,NA),
  border = c("black",NA,NA,NA),
  bty    = "n"
) 

legend(
  "topleft",
  legend = c("","","",""),
  col    = c(NA,"black","red","black"),
  lty    = c(NA,1,1,1),
  border = c("black",NA,NA,NA),
  bty    = "n",
  seg.len = 0.8
) 
  

Результат:

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