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.

Impresión de Rmarkdown: gráficos superpuestos y gráficos individuales.

Soy capaz de imprimir el histograma superpuesto de dos series que estoy observando, pero por alguna razón, Rmarkdown está imprimiendo tanto el histograma superpuesto (en colores a continuación) como los histogramas individuales de cada serie (uno mostrado abajo).

¿Hay alguna forma de incluir solo el histograma superpuesto en Rmarkdown en lugar de los tres gráficos? Gracias.

Código:

install.packages('Lahman')
library(Lahman); library(tidyverse)

pitch19 <- Lahman::Pitching %>%
  filter(yearID == 2019, BFP >= 500) %>%
  mutate(lgID = factor(lgID))

p1 <- hist(pitch19$BAOpp[pitch19$lgID == 'NL'])
p2 <- hist(pitch19$BAOpp[pitch19$lgID == 'AL'])

plot( p1, col=rgb(0,0,1,2/4), xlim=c(0.15,0.35),
      main='Promedio de bateo del oponente (BAOpp) por liga',
      xlab='BAOpp', plot=FALSE)
lines(density(pitch19$BAOpp[pitch19$lgID == 'NL']), col=rgb(0,0,1), lwd=3)
plot( p2, col=rgb(1,0,0,2/4), add=T, plot=FALSE)
lines(density(pitch19$BAOpp[pitch19$lgID == 'AL']), col=rgb(1,0,0), lwd=3)
legend('topleft',legend=c('Liga Nacional', 'Liga Americana'),
       fill = c(rgb(0,0,1), rgb(1,0,0)), bty = 'n',
       border = NA)
box()

Resultado de Rmarkdown:
(Enlace a la imagen) [https://i.stack.imgur.com/0ticP.png]

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes eliminar los histogramas individuales eliminando las líneas de código que los crean. Aquí está el código actualizado que solo produce el histograma superpuesto en Rmarkdown:

    install.packages('Lahman')
    library(Lahman); library(tidyverse)
    
    pitch19 = Lahman::Pitching %>% 
      filter(yearID == 2019, BFP >= 500) %>% 
      mutate(lgID = factor(lgID))
    
    p1 <- hist(pitch19$BAOpp[pitch19$lgID == 'NL'])
    p2 <- hist(pitch19$BAOpp[pitch19$lgID == 'AL'])
    
    plot( p1, col=rgb(0,0,1,2/4), xlim=c(0.15,0.35), 
          main='Promedio de Bateo de la Oposición (BAOpp) por Liga',
          xlab='BAOpp', plot=FALSE)
    lines(density(pitch19$BAOpp[pitch19$lgID == 'NL']), col=rgb(0,0,1), lwd=3)
    lines(density(pitch19$BAOpp[pitch19$lgID == 'AL']), col=rgb(1,0,0), lwd=3)
    legend('topleft',legend=c('Liga Nacional', 'Liga Americana'),
           fill = c(rgb(0,0,1), rgb(1,0,0)), bty = 'n',
           border = NA)
    box()
    

    La función plot solo se llama una vez, y los histogramas individuales (p1 y p2) no se agregan al gráfico. En su lugar, se agregan dos gráficos de densidad al mismo gráfico, lo que crea el histograma superpuesto.

Comments are closed.