[R-es] Gráfico von varias variables

Xavi de Blas xaviblas en gmail.com
Mie Oct 31 10:24:18 CET 2012


Perdón por el autobombo pero aquí tengo un gráfico con 4 variables que
me satisface:

http://chronojump.org/server/images/tf_by_level_sex_jumptype.png

el código está aquí:

http://git.gnome.org/browse/chronojump/tree/chronojump_server/r-sqlite/tf_by_level_sex_jumptype.R

A ver si te sirve. Saludos



2012/10/31 Carlos Ortega <cof en qualityexcellence.es>:
> Hola,
>
> La clave está destacada en utilizar "*add=T*" en el segundo barplot para
> superponerle al primero en vez de utilizar "par(new=T)".
> El destaco los cambios en tu mismo código:
>
> par(mar=c(4,4,3,1),            #
>     omi=c(0.1,0.1,0.1,0.1),    #
>     las=1,                     #
>     mex=0.5,                   #
>     cex.lab = 1,               #
>     cex.axis=0.7)              # el tamaño de las leyendas
> barplot(caps$personas,
>         names.ar=caps$CAPS,
>         col="blue", border=F, space=.01)
> *#par(new=T)*
> barplot(caps$PersonasRCVG, axes=F, ann=F, type="n",
>         # crea la barra de caps$PersonasRCGV, pero cambia los ejes porque
> el resultado gráfico no es
>         # coherente con los valores (caps$PersonasRCVG siempre es un valor
> menor que
>         #                           caps$personas...)
>         col="grey", border=F, space=.01*, add=T*)
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 31 de octubre de 2012 05:32, Mauricio Monsalvo
> <m.monsalvo en gmail.com>escribió:
>
>> Estimados amigos,
>> Tengo el siguiente set de datos:
>> caps <- datos[datos$NombreDepartamento=="LANUS", c("CAPS", "personas",
>> "PersonasRCVG", "Con12Meses")]
>> caps$prevalencia <- round(caps$PersonasRCVG/caps$personas*100,1)
>>   caps
>>
>>      CAPS personas PersonasRCVG Con12Meses prevalencia
>> 2345 2345     1347          132        211         9.8
>> 2363 2363    17272         1602       2320         9.3
>> 2341 2341     1771          241        220        13.6
>> 2361 2361     2725          371        466        13.6
>> 2342 2342     4590          538       3615        11.7
>> 2347 2347    16610         1678       5884        10.1
>> 2348 2348     2961          373        883        12.6
>> 2350 2350     8132          990       1180        12.2
>> 2351 2351     2205          332        208        15.1
>> 2355 2355     4059          409        548        10.1
>> 2364 2364     5175          517        696        10.0
>> 2349 2349     1111          158        459        14.2
>> 2360 2360      809          127        190        15.7
>> 2362 2362     3112          358        754        11.5
>> 2365 2365     2522          340        271        13.5
>> 2343 2343    12136         1112       5016         9.2
>> 2344 2344    20956         2365       4161        11.3
>> 2346 2346     2640          273       1062        10.3
>> 2357 2357     3143          458        682        14.6
>> 2358 2358     3432          337        532         9.8
>> 2340 2340     1733          288        384        16.6
>> 2352 2352    17358         1694       3511         9.8
>> 2356 2356    15034         1780      10990        11.8
>> 2359 2359    15907         1731       6464        10.9
>> 8924 8924      639          160        103        25.0
>> 8929 8929      734          107         66        14.6
>> 8937 8937     2688          527        414        19.6
>> 8932 8932      858           93         96        10.8
>>
>> Y quiero graficar las 4 variables juntas. Creo que casi casi casi lo logro,
>> salvo por (a) la barra de caps$PersonasRCVG, que pareciera cambia los
>> valores del eje Y a otra escala... creo... y (b) porque me falta ordenar el
>> gráfico por la línea de caps$Con12Meses (de mayor a menor).
>> Va mi mejor intento:
>> par(mar=c(4,4,3,1),            #
>>     omi=c(0.1,0.1,0.1,0.1),    #
>>     las=1,                     #
>>     mex=0.5,                   #
>>     cex.lab = 1,               #
>>     cex.axis=0.7)              # el tamaño de las leyendas
>> barplot(caps$personas,
>>         names.ar=caps$CAPS,
>>         col="blue", border=F, space=.01)
>> par(new=T)
>> barplot(caps$PersonasRCVG, axes=F, ann=F, type="n", # crea la barra de
>> caps$PersonasRCGV, pero cambia los ejes porque el resultado gráfico no es
>> coherente con los valores (caps$PersonasRCVG siempre es un valor menor que
>> caps$personas...)
>>         col="grey", border=F, space=.01)
>> par(new=T)
>> plot(caps$Con12Meses, axes=F, ann=F, type="n")
>> points(caps$Con12Meses,type="l",col="black")       # Crea la línea para
>> caps$Con12Meses (por la cual quiero ordenar)
>> points(caps$Con12Meses,  pch=16, col="black")      # agrega puntos negros
>> rellenos a la línea
>> par(new=T)
>> plot(caps$prevalencia, axes=F, ann=F, type="n")
>> axis(4)                                           # Crea el eje secundario
>> points(caps$prevalencia,type="l",col="red")       # Crea la línea sobre el
>> eje secundario
>> points(caps$prevalencia,  pch=16, col="red")      # agrega puntos rojos
>> rellenos a la línea
>> text(caps$prevalencia, labels=paste(caps$prevalencia), pos=3, col="red", )
>> # si se quiere poner la prevalencia en el gráfico.
>> ¿Podrían por favor ayudarme con la solución? Les juro que renegué como loco
>> para llegar a este punto y creo que ya no "veo" más nada en las ayudas!
>> Además, ¿no hay una forma más "simple" de hacerlo?
>> Muchas gracias, como siempre. (Algún día aprenderé...)
>> --
>> Mauricio
>>
>>         [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> 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]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



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