Ruben Tobalina Ramirez
2016-Sep-02 18:25 UTC
[R-es] Ayuda con gráfico típico de histograma más linea
Buenas tardes, Tengo una duda con gráficos. Estoy intentando realizar el típico gráfico de una variable en histograma y otra en linea, supongo que será sencillo pero llevo unos días peleando y no me sale de forma correcta. Las variables están en un dataframe que muestran las frecuencias de tweets minuto a minuto y el share de esos minutos (os adjunto un archivo en csv con el dataframe). Una muestra del data frame: * hora frec Miles Share 1 20:22 87 1.016 13,0 2 20:23 123 1.031 13,33 20:24 153 1.048 13,5 4 20:25 192 1.165 15,0 5 20:26 175 1.239 15,8 6 20:27 225 1.331 17,0 * He probado con *plot* y el parámetro *new* sin éxito, y ahora estaba probando con *ggplot*: *ggplot(ft, aes(ft[,2:3])) + geom_bar(aes(ft[,2]), colour="black", fill "orange") + geom_line(aes(x=ft$hora,y=ft[,3]), colour="black") * Se me muestran las variables pero de forma incorrecta. ¿Alguna sugerencia? De paso, me podéis indicar algún manual para aprender a realizar gráficos con R? Muchas gracias! Un saludo!!! -- Rubén. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160902/7dbc2be2/attachment.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: pec.csv Type: text/csv Size: 3638 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160902/7dbc2be2/attachment.bin>
Carlos Ortega
2016-Sep-02 19:47 UTC
[R-es] Ayuda con gráfico típico de histograma más linea
Hola, Aproximación muy sencillita...con gráficos "base": #----------------- datIn <- read.csv("pec.csv", header = TRUE, sep = ";", dec = ",") par(mfrow = c(2,1)) barplot( datIn$frec ,las = 1 ,col = "green" ,cex.axis = 0.7, col.axis = "red", font.axis = 2 ,main = "Frequency" ) box() plot( datIn$Share ,type = "b" ,col = "blue", bg = "blue", col.axis = "red", font.axis = 2 ,cex = 0.7 ,cex.axis = 0.7 ,las = 1 ,main = "Share", ylab = "", xlab = "" ,ylim = c(0, 1.10*max(datIn$Share)) ) #----------------- Yo haría la representación por separado, mejor que un gráfico con doble eje. Pero si quieres hacer un gráfico de doble eje: http://ellisp.github.io/blog/2016/08/28/dualaxes2 Y como referencia para hacer gráficos (en español): https://www.amazon.es/Gráficos-Estadísticos-Castor-Guisande-González/dp/8499692117/ref=sr_1_1?ie=UTF8&qid=1472845192&sr=8-1&keywords=graficos+en+R <https://www.amazon.es/Gr%C3%A1ficos-Estad%C3%ADsticos-Castor-Guisande-Gonz%C3%A1lez/dp/8499692117/ref=sr_1_1?ie=UTF8&qid=1472845192&sr=8-1&keywords=graficos+en+R> Nota: Si quieres incluir las horas minutos en el eje "X" de cualquiera de los dos gráficos: http://stackoverflow.com/questions/5182238/r-replace-x-axis-with-own-values Saludos, Carlos Ortega www.qualityexcellence.es El 2 de septiembre de 2016, 20:25, Ruben Tobalina Ramirez < lagrimaescrita en gmail.com> escribió:> Buenas tardes, > > Tengo una duda con gráficos. Estoy intentando realizar el típico gráfico > de una variable en histograma y otra en linea, supongo que será sencillo > pero llevo unos días peleando y no me sale de forma correcta. > > Las variables están en un dataframe que muestran las frecuencias de tweets > minuto a minuto y el share de esos minutos (os adjunto un archivo en csv > con el dataframe). > > Una muestra del data frame: > > > > > > > > > * hora frec Miles Share 1 20:22 87 1.016 > 13,0 > 2 20:23 123 1.031 13,33 20:24 153 1.048 13,5 4 20:25 192 1.165 15,0 > 5 20:26 175 1.239 15,8 6 20:27 225 1.331 17,0 * > > He probado con *plot* y el parámetro *new* sin éxito, y ahora estaba > probando con *ggplot*: > > > > *ggplot(ft, aes(ft[,2:3])) + geom_bar(aes(ft[,2]), colour="black", fill > = "orange") + geom_line(aes(x=ft$hora,y=ft[,3]), colour="black") * > > Se me muestran las variables pero de forma incorrecta. ¿Alguna sugerencia? > De paso, me podéis indicar algún manual para aprender a realizar gráficos > con R? > > Muchas gracias! > > Un saludo!!! > > > -- > Rubén. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Carlos Ortega
2016-Sep-02 22:12 UTC
[R-es] Ayuda con gráfico típico de histograma más linea
Y bueno, algo más bonito sí que queda con ggplot... #--------------- datIn <- read.csv("pec.csv", header = TRUE, sep = ";", dec = ",") library(ggplot2) lab_x_idx <- c(1, round(nrow(datIn)/2, 0), nrow(datIn)) lab_x <- as.vector(datIn$hora[ lab_x_idx]) fre_gg <- ggplot( datIn, aes( x = 1:nrow(datIn), y = frec)) + geom_bar(stat = "identity") + xlab(paste("Rango horas: ", datIn$hora[1], "-", datIn$hora[nrow(datIn)], sep = "") ) + ylab("Frecuencia") + scale_x_continuous( breaks = lab_x_idx, labels = lab_x ) + theme_minimal() sha_gg <- ggplot( datIn , aes(x = 1:nrow(datIn), y = Share)) + geom_line() + xlab(paste("Rango horas: ", datIn$hora[1], "-", datIn$hora[nrow(datIn)], sep = "") ) + ylab("Share") + ylim(0, max(datIn$Share)*1.10) + scale_x_continuous( breaks = lab_x_idx, labels = lab_x ) + theme_minimal() library(gridExtra) grid.arrange(fre_gg, sha_gg, nrow=2, ncol=1) #--------------- Saludos, Carlos Ortega www.qualityexcellence.es El 2 de septiembre de 2016, 21:47, Carlos Ortega <cof en qualityexcellence.es> escribió:> Hola, > > Aproximación muy sencillita...con gráficos "base": > > #----------------- > > datIn <- read.csv("pec.csv", header = TRUE, sep = ";", dec = ",") > > par(mfrow = c(2,1)) > barplot( > datIn$frec > ,las = 1 > ,col = "green" > ,cex.axis = 0.7, col.axis = "red", font.axis = 2 > ,main = "Frequency" > ) > box() > plot( > datIn$Share > ,type = "b" > ,col = "blue", bg = "blue", col.axis = "red", font.axis = 2 > ,cex = 0.7 > ,cex.axis = 0.7 > ,las = 1 > ,main = "Share", ylab = "", xlab = "" > ,ylim = c(0, 1.10*max(datIn$Share)) > ) > > #----------------- > > Yo haría la representación por separado, mejor que un gráfico con doble > eje. > Pero si quieres hacer un gráfico de doble eje: > http://ellisp.github.io/blog/2016/08/28/dualaxes2 > > Y como referencia para hacer gráficos (en español): > https://www.amazon.es/Gráficos-Estadísticos-Castor-Guisande-González/dp/ > 8499692117/ref=sr_1_1?ie=UTF8&qid=1472845192&sr=8-1&keywords=graficos+en+R > <https://www.amazon.es/Gr%C3%A1ficos-Estad%C3%ADsticos-Castor-Guisande-Gonz%C3%A1lez/dp/8499692117/ref=sr_1_1?ie=UTF8&qid=1472845192&sr=8-1&keywords=graficos+en+R> > > Nota: Si quieres incluir las horas minutos en el eje "X" de cualquiera de > los dos gráficos: > http://stackoverflow.com/questions/5182238/r-replace-x- > axis-with-own-values > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 2 de septiembre de 2016, 20:25, Ruben Tobalina Ramirez < > lagrimaescrita en gmail.com> escribió: > >> Buenas tardes, >> >> Tengo una duda con gráficos. Estoy intentando realizar el típico gráfico >> de una variable en histograma y otra en linea, supongo que será sencillo >> pero llevo unos días peleando y no me sale de forma correcta. >> >> Las variables están en un dataframe que muestran las frecuencias de >> tweets minuto a minuto y el share de esos minutos (os adjunto un archivo en >> csv con el dataframe). >> >> Una muestra del data frame: >> >> >> >> >> >> >> >> >> * hora frec Miles Share 1 20:22 87 1.016 >> 13,0 >> 2 20:23 123 1.031 13,33 20:24 153 1.048 13,5 4 20:25 192 1.165 15,0 >> 5 20:26 175 1.239 15,8 6 20:27 225 1.331 17,0 * >> >> He probado con *plot* y el parámetro *new* sin éxito, y ahora estaba >> probando con *ggplot*: >> >> >> >> *ggplot(ft, aes(ft[,2:3])) + geom_bar(aes(ft[,2]), colour="black", fill >> = "orange") + geom_line(aes(x=ft$hora,y=ft[,3]), colour="black") * >> >> Se me muestran las variables pero de forma incorrecta. ¿Alguna sugerencia? >> De paso, me podéis indicar algún manual para aprender a realizar gráficos >> con R? >> >> Muchas gracias! >> >> Un saludo!!! >> >> >> -- >> Rubén. >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]