Common legend for multiple plots in R

心不动则不痛 提交于 2019-11-26 09:27:35

问题


I am using R and Latex together to draw some plots and am trying to make a common legend for all of them.

I have six separate plots on the same page. I made each plot separately in R and then displayed them on the same page using \\includegraphics in Latex.

Each graph has the same legend information, so rather than having a legend in each plot I would like to have one horizontal legend on display at the bottom of page. Unfortunately, I can\'t figure out how to make a legend without a plot. Once I have a separate image for the legend, I will know how to include it at the bottom of the page using Latex.

The code I am trying to use to make the legend is

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)

But, the font is too small and the side of the legend box is cut off.


回答1:


A simple example of what I was talking about:

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)




回答2:


Try this,

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)


来源:https://stackoverflow.com/questions/10389967/common-legend-for-multiple-plots-in-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!