Общая легенда для нескольких графиков в 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)
Но шрифт слишком мал, а сторона окна легенды отключена.
Ответы
Ответ 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)