Подтвердить что ты не робот

Общая легенда для нескольких графиков в R

Я использую R и Latex вместе, чтобы рисовать некоторые сюжеты и пытаюсь сделать общую легенду для всех.

У меня есть шесть отдельных графиков на одной странице. Я сделал каждый график отдельно в R, а затем отобразил их на одной странице с помощью \includegraphics в Latex.

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

Код, который я пытаюсь использовать для создания легенды,

plot(1, type = "n", axes=FALSE, xlab="", ylab="")
plot_colors <- c("blue","black", "green", "orange", "pink")

legend(.6,1.3,legend = c("Fabricated Metal", "Iron and Steel", "Paper", 
"Beverages", "Tobacco"), 
       col=plot_colors, lwd=5, cex=.5, horiz = TRUE)

Но шрифт слишком мал, а сторона окна легенды отключена.

4b9b3361

Ответ 1

Простой пример того, о чем я говорил:

m <- matrix(c(1,2,3,4,5,6,7,7,7),nrow = 3,ncol = 3,byrow = TRUE)

layout(mat = m,heights = c(0.4,0.4,0.2))

for (i in 1:6){
    par(mar = c(2,2,1,1))
    plot(runif(5),runif(5),xlab = "",ylab = "")
}


plot(1, type = "n", axes=FALSE, xlab="", ylab="")
plot_colors <- c("blue","black", "green", "orange", "pink")
legend(x = "top",inset = 0,
        legend = c("Fabricated Metal", "Iron and Steel", "Paper","Beverages", "Tobacco"), 
        col=plot_colors, lwd=5, cex=.5, horiz = TRUE)

enter image description here

Ответ 2

Попробуйте это,

plot_colors <- c("blue","black", "green", "orange", "pink")
text <- c("Fabricated Metal", "Iron and Steel", "Paper", 
"Beverages", "Tobacco")
plot.new()
par(xpd=TRUE)
legend("center",legend = text, text.width = max(sapply(text, strwidth)),
       col=plot_colors, lwd=5, cex=1, horiz = TRUE)
par(xpd=FALSE)