r oop plot package s4

Formateo y manipulación de un diagrama del paquete R "hexbin"



oop plot (3)

hexbin usa gráficos de grid , no base . Existe una función similar, grid.abline , que puede dibujar líneas en parcelas especificando una pendiente e intersección, pero el sistema de coordenadas utilizado es confuso:

grid.abline(325,0)

obtiene aproximadamente lo que quiere, pero la intersección aquí fue encontrada a simple vista.

Tendrás más suerte al usar ggplot2 :

library(ggplot2) ggplot(data,aes(x=alpha,y=beta)) + geom_hex(bins=10) + geom_hline(yintercept=0.5)

hexbin un diagrama usando el paquete hexbin :

# install.packages("hexbin", dependencies=T) library(hexbin) set.seed(1234) x <- rnorm(1e6) y <- rnorm(1e6) hbin <- hexbin( x = x , y = y , xbin = 50 , xlab = expression(alpha) , ylab = expression(beta) ) ## Using plot method for hexbin objects: plot(hbin, style = "nested.lattice") abline(h=0)

Esto parece generar un objeto S4 ( hbin ), que luego trazo usando plot . Ahora me gustaría agregar una línea horizontal a esa gráfica usando abline , pero desafortunadamente esto da el error:

plot.new aún no se ha llamado

Tampoco tengo ni idea, cómo puedo manipular, por ejemplo, la posición de las etiquetas del eje (alfa y beta están dentro de los números), cambiar la posición de la leyenda, etc.

Estoy familiarizado con OOP, pero hasta ahora no podía averiguar cómo trama () maneja el objeto (¿llama a ciertos métodos del objeto?) Y cómo puedo manipular el gráfico resultante.

¿Por qué no puedo simplemente trazar una línea en la trama?

¿Cómo puedo manipular las etiquetas de los ejes?


Utilice la versión en celosía del contenedor hexadecimal - hexbinplot() . Con el panel puede agregar su línea, y con style puede elegir diferentes formas de visualizar hexágonos. Consulte la ayuda de hexbinplot para obtener más información.

library(hexbin) library(lattice) x <- rnorm(1e6) y <- rnorm(1e6) hexbinplot(x ~ y, aspect = 1, bins=50, xlab = expression(alpha), ylab = expression(beta), style = "nested.centroids", panel = function(...) { panel.hexbinplot(...) panel.abline(h=0) })


Tuve muchos problemas para encontrar muchos ajustes básicos de trazado (rangos de ejes, etiquetas, etc.) con la biblioteca hexbin , pero descubrí cómo exportar los puntos a cualquier otra función de trazado:

hxb<-hexbin(x=c(-15,-15,75,75), y=c(-15,-15,75,75), xbins=12) hxb@xcm #gives the x co-ordinates of each hex tile hxb@ycm #gives the y co-ordinates of each hex tile hxb@count #gives the cell size for each hex tile points(x=hxb@xcm, y=hxb@ycm, pch=hxb@count)

Simplemente puede alimentar estos tres vectores en cualquier herramienta de trazado que utilice normalmente ... existe el ajuste habitual de la escala de tamaño, etc., pero es mucho mejor que la obstinada función de trazado hexagonal. El problema que encontré con ggplot2 stat_binhex es que no pude conseguir que los hexágonos tengan diferentes tamaños ... solo colores diferentes.

si realmente quieres hexágonos, plotrix tiene una función de dibujo hexagonal que creo que está bien.