6 votos

¿Puedo pasar un parámetro "at" para las ubicaciones del eje x de las barras, a un gráfico de barras de R?

Hola en gráficos base en R, me gustaría superponer un gráfico de barras en un gráfico que tiene puntos espaciados irregularmente en una curva. Las barras deben representar el cambio en estos puntos desde la muestra anterior. Pero me gustaría que las barras se alinearan con los puntos en la dirección horizontal, por lo que básicamente debería haber un montón de espacios en blanco, y dondequiera que haya un punto en el gráfico de líneas, también debería aparecer una barra en la misma ubicación del eje x, mostrando el cambio. La parte inferior de las barras comenzará en el eje x (es decir, en y=0), o posiblemente debajo como un gráfico separado.

¿Cómo puedo hacer esto en R?

Sé que puedo hacer esto con bloxplots, como se puede ver en el gráfico en cuestión a continuación, donde las cajas se alinean a los distintos puntos (que son, fyi, bonos del gobierno sudafricano). Ahora, ¿cómo puedo añadir el gráfico de barras?

enter image description here

10voto

ashwnacharya Puntos 3144

barplot() es sólo una envoltura para rect() para que puedas añadir las barras tú mismo. Esto podría ser un comienzo:

x    <- sort(sample(1:100, 10, replace=FALSE)) # x-coordinates
y    <- log(x)                                 # y-coordinates
yD   <- c(0, 2*diff(y))                        # twice the change between steps
barW <- 1                                      # width of bars

plot(x, y, ylim=c(0, log(100)), pch=16)
rect(xleft=x-barW, ybottom=0, xright=x+barW, ytop=yD, col=gray(0.5))

enter image description here

Su segunda idea podría realizarse dividiendo la región del dispositivo con par(fig) .

par(fig=c(0, 1, 0.30, 1))                    # upper device region
plot(x, y, ylim=c(0, log(100)), pch=16)
par(fig=c(0, 1, 0, 0.45), bty="n", new=TRUE) # lower device region
plot(x, y, type="n", ylim=c(0, max(yD)))     # empty plot to get correct axes
rect(xleft=x-barW, ybottom=0, xright=x+barW, ytop=yD, col=gray(0.5))

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X