Положение легенды в макете нескольких участков в R - PullRequest
2 голосов
/ 09 июля 2019

Мне нужно поместить легенду под заголовком изображения, но я не знаю, как это легко сделать

par(mfrow=c(2,3),oma=c(0,0,0,0),xpd=NA)
maximo<-max(valuetable[,-ncol(valuetable)],na.rm = T )
c1<-which(data$class==1);cluster1 <- data[c1,]
c2<-which(data$class==2);cluster2 <- data[c2,]
c3<-which(data$class==3);cluster3 <- data[c3,]
c4<-which(data$class==4);cluster4 <- data[c4,]
c5<-which(data$class==5);cluster5 <- data[c5,]
hist(as.matrix(cluster1[,-ncol(cluster1)]),ylab="Frecuencia",xlab="Precipitación (mm)",ylim=c(0,3000), xlim=c(0,maximo),col=Set1T[1],main="");box()
hist(as.matrix(cluster2[,-ncol(cluster2)]),ylab="Frecuencia",xlab="Precipitación (mm)",ylim=c(0,3000), xlim=c(0,maximo),col=Set1T[2],main="");box()
hist(as.matrix(cluster3[,-ncol(cluster3)]),ylab="Frecuencia",xlab="Precipitación (mm)",ylim=c(0,3000), xlim=c(0,maximo),col=Set1T[3],main="");box()
hist(as.matrix(cluster4[,-ncol(cluster4)]),ylab="Frecuencia",xlab="Precipitación (mm)",ylim=c(0,3000), xlim=c(0,maximo),col=Set1T[4],main="");box()
hist(as.matrix(cluster5[,-ncol(cluster5)]),ylab="Frecuencia",xlab="Precipitación (mm)",ylim=c(0,3000), xlim=c(0,maximo),col=Set1T[5],main="");box()
mtext("Histogramas de Precipitación", side = 3, line = -1.5, outer = TRUE)
legend("top",legend=c("Cluster 1", "Cluster 2","Cluster 3","Cluster 4","Cluster 5"),col = 1:5, lty=1,horiz = T,lwd=3, bty = "n", cex = 1.3)

enter image description here

1 Ответ

0 голосов
/ 09 июля 2019

Вместо указания "top" в качестве первого параметра legend(), поставьте два числа (первое для позиции "x", второе для позиции "y"), как показано ниже. Первые два параметра legend() - это x и y.

legend(-0.5, 62, legend=c("Cluster 1", "Cluster 2","Cluster 3","Cluster 4","Cluster 5"),col = 1:5, lty=1,horiz = T,lwd=3, bty = "n", cex = 1.3)

Это дает следующие результаты: enter image description here

Возможно, вам просто придется немного поиграть с числами, чтобы они выглядели красиво.


Весь код для точной репликации примера графика:

data(mtcars)
data <- mtcars

par(mfrow = c(2, 3), oma = c(0, 0, 3, 0), xpd = NA)

hist(mtcars$vs)
hist(mtcars$vs)
hist(mtcars$vs)
hist(mtcars$vs)
hist(mtcars$vs)

mtext("Histogramas de Precipitación", side = 3, outer = T)

legend (
    x = -0.5, y = 62, # these two parameters are the relevant ones
    legend = c("Cluster 1", "Cluster 2", "Cluster 3", "Cluster 4", "Cluster 5"),
    col = 1:5, 
    lty = 1,
    horiz = T,
    lwd = 3, 
    bty = "n",
    cex = 1.3
)


Отредактировано, потому что я изначально неправильно прочитал вопрос.

...