23

R と Latex を一緒に使用していくつかのプロットを描画し、それらすべてに共通の凡例を作成しようとしています。

同じページに 6 つの個別のプロットがあります。R で各プロットを個別に作成し、Latex で \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)

しかし、フォントが小さすぎて凡例ボックスの端が切れています。

4

3 に答える 3

33

私が話していたことの簡単な例:

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)

ここに画像の説明を入力

于 2012-04-30T21:44:18.100 に答える
5

これを試して、

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)
于 2012-04-30T21:32:35.293 に答える