varias superponer studio lineas graficos graficas ggplot r plot

superponer - varias graficas en r



Gráfico de burbuja categórico para estudios de mapeo (3)

Aquí está la solución ggplot2. En primer lugar, agregó radio como nueva variable a su marco de datos.

grid$radius <- sqrt( grid$count / pi )

Debes jugar con el tamaño de los puntos y las etiquetas de texto dentro de la trama para un ajuste perfecto.

library(ggplot2) ggplot(grid,aes(Var1,Var2))+ geom_point(aes(size=radius*7.5),shape=21,fill="white")+ geom_text(aes(label=count),size=4)+ scale_size_identity()+ theme(panel.grid.major=element_line(linetype=2,color="black"), axis.text.x=element_text(angle=90,hjust=1,vjust=0))

¿Cómo crear un diagrama de burbujas categóricas, utilizando GNU R, similar al utilizado en los estudios sistemáticos de mapeo (ver más abajo)?

EDIT: ok, esto es lo que he intentado hasta ahora. Primero, mi conjunto de datos (Var1 va al eje x, Var2 va al eje y):

> grid Var1 Var2 count 1 Does.Not.apply Does.Not.apply 53 2 Not.specified Does.Not.apply 15 3 Active.Learning..general. Does.Not.apply 1 4 Problem.based.Learning Does.Not.apply 2 5 Project.Method Does.Not.apply 4 6 Case.based.Learning Does.Not.apply 22 7 Peer.Learning Does.Not.apply 6 10 Other Does.Not.apply 1 11 Does.Not.apply Not.specified 15 12 Not.specified Not.specified 15 21 Does.Not.apply Active.Learning..general. 1 23 Active.Learning..general. Active.Learning..general. 1 31 Does.Not.apply Problem.based.Learning 2 34 Problem.based.Learning Problem.based.Learning 2 41 Does.Not.apply Project.Method 4 45 Project.Method Project.Method 4 51 Does.Not.apply Case.based.Learning 22 56 Case.based.Learning Case.based.Learning 22 61 Does.Not.apply Peer.Learning 6 67 Peer.Learning Peer.Learning 6 91 Does.Not.apply Other 1 100 Other Other 1

Luego, tratando de trazar los datos:

# Based on http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/ grid <- subset(grid, count > 0) radius <- sqrt( grid$count / pi ) symbols(grid$Var1, grid$Var2, radius, inches=0.30, xlab="Research type", ylab="Research area") text(grid$Var1, grid$Var2, grid$count, cex=0.5)

Este es el resultado:

Problemas: las etiquetas de los ejes son incorrectas, las líneas discontinuas de la cuadrícula faltan.


Aquí una versión usando levelplot de latticeExtra .

library(latticeExtra) levelplot(count~Var1*Var2,data=dat, panel=function(x,y,z,...) { panel.abline(h=x,v=y,lty=2) cex <- scale(z)*3 panel.levelplot.points(x,y,z,...,cex=5) panel.text(x,y,label=z,cex=0.8) },scales=(x=list(abbreviate=TRUE))) ## to get short labels

Para obtener el tamaño de burbuja proprional para el recuento, puede hacer esto

library(latticeExtra) levelplot(count~Var1*Var2,data=dat, panel=function(x,y,z,...) { panel.abline(h=x,v=y,lty=2) cex <- scale(z)*3 panel.levelplot.points(x,y,z,...,cex=5) panel.text(x,y,label=z,cex=0.8) })

No lo visualizo ya que el render no es claro como en el caso de tamaño de corrección.


Esto lo ayudará a comenzar agregando las marcas a su xaxis.

Para agregar las líneas, simplemente agrega una línea en cada nivel

ggs <- subset(gg, count > 0) radius <- sqrt( ggs$count / pi ) # ggs$Var1 <- as.character(ggs$Var1) # set up your tick marks # (this can all be put into a single line in `axis`, but it''s placed separate here to be more readable) #-------------- # at which values to place the x tick marks x_at <- seq_along(levels(gg$Var1)) # the string to place at each tick mark x_labels <- levels(gg$Var1) # use xaxt="n" to supress the standard axis ticks symbols(ggs$Var1, ggs$Var2, radius, inches=0.30, xlab="Research type", ylab="Research area", xaxt="n") axis(side=1, at=x_at, labels=x_labels) text(ggs$Var1, ggs$Var2, ggs$count, cex=0.5)

Además, observe que en lugar de llamar a la grid objetos, grid llamé gg y luego ggs para el subconjunto. grid es una función en R Si bien "se permite" sobrescribir la función con un objeto, no se recomienda y puede provocar molestos errores en la línea.