RとLatexを一緒に使用してプロットを描画し、それらすべての共通の凡例を作成しようとしています。
同じページに6つのプロットがあります。 Rで各プロットを個別に作成し、ラテックスの\ includegraphicsを使用して同じページに表示しました。
各グラフには同じ凡例情報があるため、各プロットに凡例を表示するのではなく、ページの下部に1つの水平凡例を表示したいと思います。残念ながら、プロットなしで凡例を作成する方法はわかりません。凡例用に別の画像を作成したら、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)
しかし、フォントが小さすぎるため、凡例ボックスの側面が切り取られています。
私が話していたものの簡単な例:
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)
これを試して、
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)