Hola, ¿hay alguna forma de colocar la leyenda de un gráfico sin que se superponga con las barras de mi gráfico? Os dejo mi ejemplo para que me entendáis: ## dado_1<-sample(1:6,1200,replace=T)dado_2<-sample(1:6,1200,replace=T)dado_3<-sample(1:6,1200,replace=T) dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) barplot(t(dados),beside=TRUE,ylab="Frecuencias absolutas",main="Dados",names.arg=c(1,2,3,4,5,6),col=c("lightblue","green","blue"))legend(2,220,c("Dado1","Dado2","Dado3"),cex=0.6,bty="n",fill=c("lightblue","green","blue")) ## Mi intención es poner la leyenda al lado del título "Dados" por ejemplo, pero no sé cómo hacerlo. Gracias, un saludo [[alternative HTML version deleted]]
Celia, Fíjate si te sirve el siguiente código. dado_1<- sample(1:6,1200,replace=T) dado_2<-sample(1:6,1200,replace=T) dado_3<-sample(1:6,1200,replace=T) dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) layout(matrix(c(1,1,0,2), 2, 16, byrow = TRUE)) # layout.show() par( mar=c(5, 5, 4, 3)) barplot(t(dados),beside=TRUE,ylab="Frecuencias absolutas", main="Dados",names.arg=c(1,2,3,4,5,6),col=c("lightblue","green","blue")) plot.new() legend("topright", inset=c(0, 0), c("Dado1","Dado2","Dado3"),bty="n",fill=c("lightblue","green","blue")) library(ggplot2) library(reshape2) colnames(dados) <- c("Dado1","Dado2","Dado3") dadoslong <- melt(dados) colnames(dadoslong) <- c('fila', 'Dado', 'valor') ggplot(dadoslong, aes( x= fila, y = valor, fill=Dado)) + geom_bar( stat="identity", position="dodge") Daniel Merino El 19 de marzo de 2014, 15:26, Celia Rubio Linares <ceruli1@hotmail.com>escribió:> Hola, ¿hay alguna forma de colocar la leyenda de un gráfico sin que se > superponga con las barras de mi gráfico? > Os dejo mi ejemplo para que me entendáis: > ## > > dado_1<-sample(1:6,1200,replace=T)dado_2<-sample(1:6,1200,replace=T)dado_3<-sample(1:6,1200,replace=T) > dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) > barplot(t(dados),beside=TRUE,ylab="Frecuencias > absolutas",main="Dados",names.arg=c(1,2,3,4,5,6),col=c("lightblue","green","blue"))legend(2,220,c("Dado1","Dado2","Dado3"),cex=0.6,bty="n",fill=c("lightblue","green","blue")) > ## > Mi intención es poner la leyenda al lado del título "Dados" por ejemplo, > pero no sé cómo hacerlo. > Gracias, un saludo > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Daniel [[alternative HTML version deleted]]
Hola, Otra forma, simplemente ampliando el eje el rango del eje "Y" y poniendo la leyenda en tres columnas... #--------------------------------------------- dado_1<-sample(1:6,1200,replace=T) dado_2<-sample(1:6,1200,replace=T) dado_3<-sample(1:6,1200,replace=T) dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) barplot( t(dados),beside=TRUE ,ylab="Frecuencias absolutas",main="Dados" ,names.arg=c(1,2,3,4,5,6) ,col=c("lightblue","green","blue") *,ylim=c(0,max(t(dados))*1.10)* ) legend( *"top", ncol=3* ,c("Dado1","Dado2","Dado3") ,cex=0.6,bty="n" ,fill=c("lightblue","green","blue") ) box() #--------------------------------------------- Saludos, Carlos Ortega www.qualityexcellence.es El 19 de marzo de 2014, 19:26, Celia Rubio Linares <ceruli1@hotmail.com>escribió:> Hola, ¿hay alguna forma de colocar la leyenda de un gráfico sin que se > superponga con las barras de mi gráfico? > Os dejo mi ejemplo para que me entendáis: > ## > > dado_1<-sample(1:6,1200,replace=T)dado_2<-sample(1:6,1200,replace=T)dado_3<-sample(1:6,1200,replace=T) > dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) > barplot(t(dados),beside=TRUE,ylab="Frecuencias > absolutas",main="Dados",names.arg=c(1,2,3,4,5,6),col=c("lightblue","green","blue"))legend(2,220,c("Dado1","Dado2","Dado3"),cex=0.6,bty="n",fill=c("lightblue","green","blue")) > ## > Mi intención es poner la leyenda al lado del título "Dados" por ejemplo, > pero no sé cómo hacerlo. > Gracias, un saludo > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, Y por no dejar pasar la oportunidad de hacerlo con "lattice"... Que permite una gestión un poco mejor de la leyenda fuera del área del gráfico junto al título. Pero utilizando el tema de ggplot2, para ello se ha de utilizar (latticeExtra) #------------------------------------------------- library(lattice) library(latticeExtra) Freq <- c( table(sample(1:6,1200, replace=T)) ,table(sample(1:6,1200, replace=T)) ,table(sample(1:6,1200, replace=T)) ) dados.df <- data.frame( as.data.frame(Freq) ,Val=names(dados.vec) ,Dad=rep(c("D1","D2","D3"),each=6) ) barchart( Freq ~ Val ,groups=Dad ,data=dados.df ,stack=F ,auto.key=list(space="top", columns=3) ,main="Dados" ,ylim=c(0,max(Freq)) ,par.settings = ggplot2like() ,axis=axis.grid ) #---------------------------------------------------- Saludos, Carlos Ortega www.qualityexcellence.es El 19 de marzo de 2014, 23:24, Carlos Ortega <cof@qualityexcellence.es>escribió:> Hola, > > Otra forma, simplemente ampliando el eje el rango del eje "Y" y poniendo > la leyenda en tres columnas... > > #--------------------------------------------- > > dado_1<-sample(1:6,1200,replace=T) > > dado_2<-sample(1:6,1200,replace=T) > dado_3<-sample(1:6,1200,replace=T) > dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) > > barplot( > t(dados),beside=TRUE > > ,ylab="Frecuencias absolutas",main="Dados" > ,names.arg=c(1,2,3,4,5,6) > ,col=c("lightblue","green","blue") > *,ylim=c(0,max(t(dados))*1.10)* > ) > > legend( > *"top", ncol=3* > > ,c("Dado1","Dado2","Dado3") > ,cex=0.6,bty="n" > ,fill=c("lightblue","green","blue") > ) > box() > > > #--------------------------------------------- > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > El 19 de marzo de 2014, 19:26, Celia Rubio Linares <ceruli1@hotmail.com>escribió: > >> Hola, ¿hay alguna forma de colocar la leyenda de un gráfico sin que se >> superponga con las barras de mi gráfico? >> Os dejo mi ejemplo para que me entendáis: >> ## >> >> dado_1<-sample(1:6,1200,replace=T)dado_2<-sample(1:6,1200,replace=T)dado_3<-sample(1:6,1200,replace=T) >> dados<-matrix(c(table(dado_1),table(dado_2),table(dado_3)),6) >> barplot(t(dados),beside=TRUE,ylab="Frecuencias >> absolutas",main="Dados",names.arg=c(1,2,3,4,5,6),col=c("lightblue","green","blue"))legend(2,220,c("Dado1","Dado2","Dado3"),cex=0.6,bty="n",fill=c("lightblue","green","blue")) >> ## >> Mi intención es poner la leyenda al lado del título "Dados" por ejemplo, >> pero no sé cómo hacerlo. >> Gracias, un saludo >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]