[R-es] Legendas en una gráfica de ggplot2

Sebastián Rangel @eb@@r@ngel @ending from gm@il@com
Mie Jul 18 20:29:40 CEST 2018


¡Gracias!  Espectacular. Me ha servido mucho.

El mié., 18 de jul. de 2018 1:15 PM, Víctor Granda García <
victorgrandagarcia using gmail.com> escribió:

> Hola Sebastián.
>
> Entiendo que tratas de que aparezca una leyenda con el tipo de curva
> (l,o,u,i). Si quieres aprovechar las ventajas de ggplot (como las leyendas
> automáticas) normalmente tienes que asignar linetype a una variable, y para
> eso tienes que modificar un poco tus datos. Los has creado en formato
> "wide" (ancho), donde tienes la columna t y una columna para cada curva.
> Pero para lo que quieres hacer en ggplot, necesitas un formato "long"
> (largo), donde tienes una columna con el tipo de curva (l,o,u,i) otra
> columna con los valores para cada curva y la columna t, solo que repetida
> para cada curva.
>
> Con este código puedes cambiar los datos y hacer la gráfica como quieres:
>
> library(ggplot2)
>
> t=seq (-4, 4, by=0.01)
>
> #### Con b=-2
>
> l=exp(t+2)/(1+(exp(t+2)))
>
> ##con b igual a -1
>
> o=exp(t+1)/(1+(exp(t+1)))
>
> ### Con b igual a 0.7
>
> i=exp(t-0.7)/(1+(exp(t-0.7)))
>
> ### Con b igual a 2
>
> u=exp(t-2)/(1+(exp(t-2)))
>
> ####unir los datos
> b=c(0.3,2,-1,-2)
>
> datos <- data.frame(
>   t = t,
>   l = l,
>   o = o,
>   i = i,
>   u = u
> )
>
> # ahora usamos gather, del paquete tidyr, porque nos permite pasar del
> formato
> # "wide" a "long"
> library(tidyr)
> # install.packages('tidyr')
> datos_long <- gather(datos, Curva, Valor, 2:5)
> datos_long
>
> ###Graficos
>
> ggplot(datos_long, aes(x = t, y = Valor, linetype = Curva)) +
>   geom_line(color="gray48", size=1.2)+
>   labs(x = expression(paste(theta)), y="Probabilidad")+
>   theme(axis.text=element_text(size=14, face="bold"),
>         axis.title=element_text(size=14))
>
>
> Como ves, datos_long ahora si que permite que asignes linetype a una
> variable (Curva) y automáticamente te dibuja diferentes tipos de linea para
> cada curva y te coloca una leyenda.
>
> Espero que te sirva, un saludo!!
>
> On Wed, 18 Jul 2018 at 19:50 Sebastián Rangel <sebasrangel using gmail.com>
> wrote:
>
>> Buenas tardes, estoy haciendo una gráfica de múltiples lineas pero no he
>> podido generar las legendas. Alguno de ustedes me podría colaborar.
>>
>> library(ggplot2)
>>
>> #### Con b=-2
>> t=seq (-4, 4, by=0.01)
>> l=exp(t+2)/(1+(exp(t+2)))
>>
>> ##con b igual a -1
>>
>> t=seq (-4, 4, by=0.01)
>> o=exp(t+1)/(1+(exp(t+1)))
>>
>> ### Con b igual a 0.7
>>
>> t=seq (-4, 4, by=0.01)
>> i=exp(t-0.7)/(1+(exp(t-0.7)))
>>
>> ### Con b igual a 2
>>
>> t=seq (-4, 4, by=0.01)
>> u=exp(t-2)/(1+(exp(t-2)))
>>
>> ####unir los datos
>> b=c(0.3,2,-1,-2)
>> datos=cbind(l,o,i,u)
>> datos=data.frame(datos)
>>
>> ###Graficos
>>
>> ggplot(  )+
>>   geom_line(aes(y = i, x=t), color="gray48", size=1.2, linetype="dashed")
>> +
>>   geom_line(aes(y = u, x=t), color = "gray48",
>> size=1.2,linetype="twodash")+
>>   geom_line(aes(y = o,x=t),  color = "gray48",
>> size=1.2,linetype="longdash") +
>>   geom_line(aes(y = l,x=t),  color="gray48", size=1.2,linetype="solid")+
>>  labs(x = expression(paste(theta)), y="Probabilidad")+
>> theme(axis.text=element_text(size=14, face="bold"),
>>   axis.title=element_text(size=14))
>>
>> Saludos,
>>
>> Sebastián Rangel Quiñonez
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
> --
> *Víctor Granda García*
> Data Technician
>
>
> v.granda using creaf.uab.cat
> Tel. +34 93 581 33 53
>
>
> Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*
> <http://www.creaf.uab.es/cat/index.htm>
>
> Abans d'imprimir aquest missatge electrònic penseu en el medi ambient.
>
>
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es