es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo trazar 2 gráficos de R de diferentes bibliotecas, como ggplot y pie3D, en la misma página?.

Necesito combinar los 2 gráficos de diferentes paquetes en la misma página?

“`library(ggplot2)
library(treemap)

cars_mpg <- mpg

mfg <- sort(table(cars_mpg$manufacturer),decreasing = T)
par(mar= c(6,4,4,4))
barplot(mfg,las=2,ylim = c(0,40),col=cm.colors(15),yaxp= c(0,40,20),cex.axis =0.8,cex.names = 0.8,
main = "Número de Autos por Fabricante") +
text(c(1:length(mfg))*1.2 -0.5, mfg+1 , mfg ,cex=0.8) +
text(14, mean(mfg) +1, paste("mean = ",round(mean(mfg),2)) ,cex=1,col = "red") +
abline(h=mean(mfg) , col="red")

<h1>b</h1>

cars<em>class <- as.data.frame(table(cars_mpg$class))
cars<em>class$labels <- paste(cars<em>class$Var1, "-", (cars<em>class$Freq))
treemap(cars<em>class,index = "labels",vSize = "Freq",palette = "Pastel1",
fontsize.labels=9,fontcolor.labels = "black",title="Autos en cada clase",
border.lwds=1)
“`

Intenté grid.arrange y algunos otros métodos, pero ninguno funcionó para mí.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para combinar los dos gráficos de diferentes paquetes (ggplot2 y treemap) en la misma página, podemos utilizar el paquete gridExtra. Primero, debemos convertir el objeto ggplot a un grob (objeto gráfico) utilizando la función ggplotGrob(), y luego utilizar la función grid.arrange() para organizar los grobs en la misma página.

    Aquí está el código:

    library(gridExtra)
    library(ggplot2)
    library(treemap)
    
    # crear objeto ggplot
    cars_mpg <- mpg
    mfg <- sort(table(cars_mpg$manufacturer), decreasing = T)
    p1 <- ggplot(data = data.frame(manufacturer = names(mfg), count = as.vector(mfg)),
           aes(x = reorder(manufacturer, count), y = count)) +
      geom_bar(stat = "identity", fill = "steelblue") +
      coord_flip() +
      labs(x = "Fabricante", y = "Número de autos", 
           title = "Número de autos por fabricante") +
      theme_bw()
    
    # crear objeto treemap
    cars_class <- as.data.frame(table(cars_mpg$class))
    cars_class$labels <- paste(cars_class$Var1, "-", cars_class$Freq)
    p2 <- treemap(cars_class, index = "labels", vSize = "Freq", 
                  palette = "Pastel1",fontsize.labels = 9, 
                  fontcolor.labels = "black", title = "Autos en cada clase", 
                  border.lwds = 1)
    
    # convertir objeto ggplot a grob
    g1 <- ggplotGrob(p1)
    
    # organizar grobs en la página
    grid.arrange(g1, p2, ncol = 2)
    
    

    Este código creará dos gráficos uno al lado del otro en la misma página, con el gráfico ggplot a la izquierda y el gráfico treemap a la derecha. Puede ajustar el parámetro ncol de la función grid.arrange() para cambiar el número de columnas en la página (por ejemplo, configurar ncol = 1 para que los gráficos se apilen verticalmente).

Comments are closed.