varias superponer studio los graficos grafico graficas graficar ggplot escala ejes dispersion como cambiar barras avanzados r ggplot2 bar-chart reshape reshape2

superponer - Gráfico de barras agrupadas en ggplot



superponer graficas en r ggplot (1)

Primero necesita obtener los conteos de cada categoría, es decir, cuántos Bads and Goods y demás hay para cada grupo (Food, Music, People). Esto se haría así:

raw <- read.csv("http://pastebin.com/raw.php?i=L8cEKcxS",sep=",") raw[,2]<-factor(raw[,2],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE) raw[,3]<-factor(raw[,3],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE) raw[,4]<-factor(raw[,4],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE) raw=raw[,c(2,3,4)] # getting rid of the "people" variable as I see no use for it freq=table(col(raw), as.matrix(raw)) # get the counts of each factor level

Luego necesita crear un marco de datos, fundirlo y trazarlo:

Names=c("Food","Music","People") # create list of names data=data.frame(cbind(freq),Names) # combine them into a data frame data=data[,c(5,3,1,2,4)] # sort columns # melt the data frame for plotting data.m <- melt(data, id.vars=''Names'') # plot everything ggplot(data.m, aes(Names, value)) + geom_bar(aes(fill = variable), position = "dodge", stat="identity")

¿Es esto lo que buscas?

Para aclarar un poco, en ggplot barra de agrupación múltiple tenía un marco de datos que se veía así:

> head(df) ID Type Annee X1PCE X2PCE X3PCE X4PCE X5PCE X6PCE 1 1 A 1980 450 338 154 36 13 9 2 2 A 2000 288 407 212 54 16 23 3 3 A 2020 196 434 246 68 19 36 4 4 B 1980 111 326 441 90 21 11 5 5 B 2000 63 298 443 133 42 21 6 6 B 2020 36 257 462 162 55 30

Como tiene valores numéricos en las columnas 4-9, que luego se trazarán en el eje y, esto se puede transformar fácilmente con la reshape y el trazado.

Para nuestro conjunto de datos actual, necesitábamos algo similar, así que usamos freq=table(col(raw), as.matrix(raw)) para obtener esto:

> data Names Very.Bad Bad Good Very.Good 1 Food 7 6 5 2 2 Music 5 5 7 3 3 People 6 3 7 4

Imagínese que tiene Very.Bad , Bad , Good , etc. en lugar de X1PCE , X2PCE , X3PCE . Ver la similitud? Pero necesitábamos crear esa estructura primero. Por lo tanto, la freq=table(col(raw), as.matrix(raw)) .

Tengo un archivo de encuesta en el que están la observación y la pregunta de la columna.

Aquí hay algunos datos falsos que parecen:

People,Food,Music,People P1,Very Bad,Bad,Good P2,Good,Good,Very Bad P3,Good,Bad,Good P4,Good,Very Bad,Very Good P5,Bad,Good,Very Good P6,Bad,Good,Very Good

Mi objetivo es crear este tipo de trama con ggplot2 .

  • No me importan los colores, el diseño, etc.
  • La trama no corresponde a los datos falsos

Aquí están mis datos falsos:

raw <- read.csv("http://pastebin.com/raw.php?i=L8cEKcxS",sep=",") raw[,2]<-factor(raw[,2],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE) raw[,3]<-factor(raw[,3],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE) raw[,4]<-factor(raw[,4],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE)

Pero si elijo Y como conteo, entonces me enfrento a un problema para elegir los valores X y Group ... No sé si puedo tener éxito sin usar reshape2 ... También me cansé de usar remodelar con derretir función. Pero no entiendo cómo usarlo ...