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]]