Hola de nuevo:<br>Un problema más que no logro saldar... Las líneas del primer y segundo eje dibujan sus "puntos" en un lugar raro, sospechoso... como si estuviera levemente corrido en relación al lugar que esperaba (la mitad de las barras).- No se si se alcanza a ver en el adjunto. Las primeras están más hacia la izquierda, los últimos más hacia la derecha. Probé eliminando los NA (caps <- na.omit(caps)) como para ver si el problema era la diferencia en la cantidad de observaciones, pero no lo resolvió. <br>
Claro que puedo eliminar los puntos, pero en ese caso pierdo análisis gráfico y puede que esté ocultando algún error.<br>Creo que si logro ajustar este gráfico, lo patento!!<br>Saludos.<br>Mauricio.<br><br><br><div class="gmail_quote">
El 31 de octubre de 2012 11:30, Mauricio Monsalvo <span dir="ltr"><<a href="mailto:m.monsalvo@gmail.com" target="_blank">m.monsalvo@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u><div>Elemental... <br>Gracias de nuevo.<br><div>Mauricio</div><hr><div><b>From: </b> Carlos Ortega <<a href="mailto:cof@qualityexcellence.es" target="_blank">cof@qualityexcellence.es</a>>
</div><div><b>Date: </b>Wed, 31 Oct 2012 15:21:43 +0100</div><div><b>To: </b>Mauricio Monsalvo<<a href="mailto:m.monsalvo@gmail.com" target="_blank">m.monsalvo@gmail.com</a>></div><div><b>Cc: </b>r-help-es<<a href="mailto:r-help-es@r-project.org" target="_blank">r-help-es@r-project.org</a>></div>
<div><b>Subject: </b>Re: [R-es] Gráfico von varias variables</div><div><div class="h5"><div><br></div><font face="verdana, sans-serif">Hola,</font><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Para ordenar todo por la columna "Con12Meses" se puede hacer ordenando inicialmente el data.frame "caps" y luego ya generar todos los gráficos.</font></div>
<div><font face="verdana, sans-serif">Adjunto el código. Tan sólo cambia una línea (la destaco en rojo):</font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><br></font></div>
<div><div><font face="verdana, sans-serif">##############################################</font></div><div><font color="#ff6666" face="verdana, sans-serif"><b>#ordeno por columna "Con12Meses"</b></font></div><div>
<font color="#ff6666" face="verdana, sans-serif"><b>caps <- caps[order(caps$Con12Meses, decreasing=T),]</b></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">par(mar=c(4,4,4,4), #</font></div>
<div><font face="verdana, sans-serif"> omi=c(0.1,0.1,0.1,0.1), #</font></div><div><font face="verdana, sans-serif"> las=1, #</font></div><div><font face="verdana, sans-serif"> mex=0.5, #</font></div>
<div><font face="verdana, sans-serif"> cex.lab = 1, #</font></div><div><font face="verdana, sans-serif"> cex.axis=0.7) # el tamaño de las leyendas</font></div><div><font face="verdana, sans-serif">barplot(</font></div>
<div><font face="verdana, sans-serif"> caps$personas,</font></div><div><font face="verdana, sans-serif"> <a href="http://names.ar" target="_blank">names.ar</a>=caps$CAPS,</font></div><div><font face="verdana, sans-serif"> col="blue", border=F, space=.01, axes=F, ylim=c(0, 1.20*max(caps$personas))</font></div>
<div><font face="verdana, sans-serif"> )</font></div><div><font face="verdana, sans-serif">axis(2, col.axis="blue")</font></div><div><font face="verdana, sans-serif">#par(new=T)</font></div><div><font face="verdana, sans-serif"># crea la barra de caps$PersonasRCGV, pero cambia los ejes porque el resultado gráfico no es</font></div>
<div><font face="verdana, sans-serif"># coherente con los valores (caps$PersonasRCVG siempre es un valor menor que caps$personas...)</font></div><div><font face="verdana, sans-serif">barplot(caps$PersonasRCVG, axes=F, ann=F,</font></div>
<div><font face="verdana, sans-serif"> col="grey", border=F, space=.01, add=T)</font></div><div><font face="verdana, sans-serif">par(new=T)</font></div><div><font face="verdana, sans-serif">plot(caps$Con12Meses, axes=F, ann=F, type="n")</font></div>
<div><font face="verdana, sans-serif">points(caps$Con12Meses,type="l",col="black") # Crea la línea paracaps$Con12Meses (por la cual quiero ordenar)</font></div><div><font face="verdana, sans-serif">points(caps$Con12Meses, pch=16, col="black") # agrega puntos negros rellenos a la línea</font></div>
<div><font face="verdana, sans-serif">par(new=T)</font></div><div><font face="verdana, sans-serif">plot(caps$prevalencia, axes=F, ann=F, type="n")</font></div><div><font face="verdana, sans-serif">axis(4, col.axis="tomato", col.lab="black" ) # Crea el eje secundario </font></div>
<div><font face="verdana, sans-serif">#points(caps$prevalencia,type="l",col="red") # Crea la línea sobre el eje secundario</font></div><div><font face="verdana, sans-serif">#points(caps$prevalencia, pch=16, col="red") # agrega puntos rojos rellenos a la línea</font></div>
<div><font face="verdana, sans-serif">points(caps$prevalencia, type="b", pch=16, col="red")</font></div><div><font face="verdana, sans-serif">text(caps$prevalencia, labels=paste(caps$prevalencia), pos=3, col="red", )</font></div>
<div><font face="verdana, sans-serif"># si se quiere poner la prevalencia en el gráfico.</font></div><div><font face="verdana, sans-serif">box()</font></div></div><div><font face="verdana, sans-serif"> ######################### FIN ######################</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Saludos,</font></div><div><font face="verdana, sans-serif">Carlos Ortega</font></div>
<div><font face="verdana, sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a></font></div><div><br><div class="gmail_quote">El 31 de octubre de 2012 14:53, Mauricio Monsalvo <span dir="ltr"><<a href="mailto:m.monsalvo@gmail.com" target="_blank">m.monsalvo@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Muchas gracias a todos!<br>Todas las soluciones me resultaron útiles. Comparto que la clave era el add=T para la segunda barra. Me quedó pendiente ordenar el gráfico por la línea de Con12Meses (que va sobre el primer eje) y ahora noto que me faltan las referencias. ¿Es lo mismo que ponerlas en uno? ¿Pero en cuál?<br>
Mauricio<br> <br><br><br><div class="gmail_quote">El 31 de octubre de 2012 06:52, Carlos Ortega <span dir="ltr"><<a href="mailto:cof@qualityexcellence.es" target="_blank">cof@qualityexcellence.es</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="verdana, sans-serif">Hola,</font><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Incluyo todo el código destacando algunas mejoras que creo que añaden coherencia a lo que se representa en cada eje, además de alguna mejora estética.</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><div><font face="verdana, sans-serif">########################################################</font></div><div><font face="verdana, sans-serif">par(<b><font color="#ff6666">mar=c(4,4,4,4)</font></b>, #</font></div>
<div>
<div><font face="verdana, sans-serif"> omi=c(0.1,0.1,0.1,0.1), #</font></div><div><font face="verdana, sans-serif"> las=1, #</font></div><div><font face="verdana, sans-serif"> mex=0.5, #</font></div>
<div><font face="verdana, sans-serif"> cex.lab = 1, #</font></div><div><font face="verdana, sans-serif"> cex.axis=0.7) # el tamaño de las leyendas</font></div><div><font face="verdana, sans-serif"><br>
</font></div></div><div><font face="verdana, sans-serif">########################</font></div><div><font face="verdana, sans-serif"># Barplots - Eje Primario</font></div><div><font face="verdana, sans-serif">barplot(</font></div>
<div><font face="verdana, sans-serif"> caps$personas,</font></div><div><font face="verdana, sans-serif"> <a href="http://names.ar" target="_blank">names.ar</a>=caps$CAPS,</font></div><div><font face="verdana, sans-serif"> col="blue", border=F, space=.01,<b><font color="#ff6666"> axes=F, ylim=c(0, 1.20*max(caps$personas)</font></b>)</font></div>
<div><font face="verdana, sans-serif"> )</font></div><div><font color="#ff6666" face="verdana, sans-serif"><b>axis(2, col.axis="blue") # Separo el eje para darle color azul como el del barplot.1</b></font></div>
<div><font face="verdana, sans-serif"><b style="color:rgb(255,102,102)">#</b>par(new=T)</font></div><div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"># crea la barra de caps$PersonasRCGV, pero cambia los ejes porque el resultado gráfico no es</font></div>
</div><div><font face="verdana, sans-serif"># coherente con los valores (caps$PersonasRCVG siempre es un valor menor que caps$personas...)</font></div><div><font face="verdana, sans-serif">barplot(caps$PersonasRCVG, axes=F, ann=F,</font></div>
<div>
<div><font face="verdana, sans-serif"> col="grey", border=F, space=.01, <b><font color="#ff6666">add=T)</font></b></font></div><div><font face="verdana, sans-serif"><br></font></div></div><div><font face="verdana, sans-serif">#######################</font></div>
<div><font face="verdana, sans-serif"># Líneas - Eje Secundario</font></div><div><div><font face="verdana, sans-serif">par(new=T)</font></div><div><font face="verdana, sans-serif">plot(caps$Con12Meses, axes=F, ann=F, type="n")</font></div>
</div><div><font face="verdana, sans-serif"><b style="color:rgb(255,102,102)">#</b>points(caps$Con12Meses,type="l",col="black") # Crea la línea paracaps$Con12Meses (por la cual quiero ordenar)</font></div>
<div><font face="verdana, sans-serif"><b style="color:rgb(255,102,102)">#</b>points(caps$Con12Meses, pch=16, col="black")<b style="color:rgb(255,102,102)"> </b> # agrega puntos negros rellenos a la línea</font></div>
<div><span style="font-family:verdana,sans-serif"><b><font color="#ff6666">points(caps$Con12Meses, pch=16, col="black") # Los dos pasos anteriores los puedo hacer en uno.</font></b></span></div><div>
<div><font face="verdana, sans-serif">par(new=T)</font></div>
<div><font face="verdana, sans-serif">plot(caps$prevalencia, axes=F, ann=F, type="n")</font></div></div><div><font face="verdana, sans-serif"><b><font color="#ff6666">axis(4, col.axis="tomato", col.lab="black" ) </font></b> # Crea el eje secundario <b><font color="#ff6666">y le doy color rojo como una de las líneas. </font></b></font></div>
<div><font face="verdana, sans-serif"><b style="color:rgb(255,102,102)">#</b>points(caps$prevalencia,type="l",col="red") # Crea la línea sobre el eje secundario</font></div><div><font face="verdana, sans-serif"><font style="font-weight:bold" color="#ff6666">#</font>points(caps$prevalencia, pch=16, col="red") # agrega puntos rojos rellenos a la línea</font></div>
<div><font color="#ff6666" face="verdana, sans-serif"><b>points(caps$prevalencia, type="b", pch=16, col="red") </b></font><b style="font-family:verdana,sans-serif"><font color="#ff6666"># Los dos pasos anteriores los puedo hacer en uno.</font></b></div>
<div>
<div><font face="verdana, sans-serif">text(caps$prevalencia, labels=paste(caps$prevalencia), pos=3, col="red", )</font></div><div><font face="verdana, sans-serif"># si se quiere poner la prevalencia en el gráfico.</font></div>
</div><div><font color="#ff6666" face="verdana, sans-serif"><b>box()</b></font></div></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">########################################################</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Saludos,</font></div><div><font face="verdana, sans-serif">Carlos Ortega</font></div>
<div><font face="verdana, sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a><br></font><br><div class="gmail_quote">El 31 de octubre de 2012 10:24, Xavi de Blas <span dir="ltr"><<a href="mailto:xaviblas@gmail.com" target="_blank">xaviblas@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Perdón por el autobombo pero aquí tengo un gráfico con 4 variables que<br>
me satisface:<br>
<br>
<a href="http://chronojump.org/server/images/tf_by_level_sex_jumptype.png" target="_blank">http://chronojump.org/server/images/tf_by_level_sex_jumptype.png</a><br>
<br>
el código está aquí:<br>
<br>
<a href="http://git.gnome.org/browse/chronojump/tree/chronojump_server/r-sqlite/tf_by_level_sex_jumptype.R" target="_blank">http://git.gnome.org/browse/chronojump/tree/chronojump_server/r-sqlite/tf_by_level_sex_jumptype.R</a><br>
<br>
A ver si te sirve. Saludos<br>
<br>
<br>
<br>
2012/10/31 Carlos Ortega <<a href="mailto:cof@qualityexcellence.es" target="_blank">cof@qualityexcellence.es</a>>:<br>
> Hola,<br>
><br>
> La clave está destacada en utilizar "*add=T*" en el segundo barplot para<br>
<div>> superponerle al primero en vez de utilizar "par(new=T)".<br>
> El destaco los cambios en tu mismo código:<br>
><br>
> par(mar=c(4,4,3,1), #<br>
> omi=c(0.1,0.1,0.1,0.1), #<br>
> las=1, #<br>
> mex=0.5, #<br>
> cex.lab = 1, #<br>
> cex.axis=0.7) # el tamaño de las leyendas<br>
> barplot(caps$personas,<br>
> <a href="http://names.ar" target="_blank">names.ar</a>=caps$CAPS,<br>
> col="blue", border=F, space=.01)<br>
</div>> *#par(new=T)*<br>
<div>> barplot(caps$PersonasRCVG, axes=F, ann=F, type="n",<br>
> # crea la barra de caps$PersonasRCGV, pero cambia los ejes porque<br>
> el resultado gráfico no es<br>
> # coherente con los valores (caps$PersonasRCVG siempre es un valor<br>
> menor que<br>
> # caps$personas...)<br>
</div>> col="grey", border=F, space=.01*, add=T*)<br>
<div><div>><br>
> Saludos,<br>
> Carlos Ortega<br>
> <a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a><br>
><br>
> El 31 de octubre de 2012 05:32, Mauricio Monsalvo<br>
> <<a href="mailto:m.monsalvo@gmail.com" target="_blank">m.monsalvo@gmail.com</a>>escribió:<br>
><br>
>> Estimados amigos,<br>
>> Tengo el siguiente set de datos:<br>
>> caps <- datos[datos$NombreDepartamento=="LANUS", c("CAPS", "personas",<br>
>> "PersonasRCVG", "Con12Meses")]<br>
>> caps$prevalencia <- round(caps$PersonasRCVG/caps$personas*100,1)<br>
>> caps<br>
>><br>
>> CAPS personas PersonasRCVG Con12Meses prevalencia<br>
>> 2345 2345 1347 132 211 9.8<br>
>> 2363 2363 17272 1602 2320 9.3<br>
>> 2341 2341 1771 241 220 13.6<br>
>> 2361 2361 2725 371 466 13.6<br>
>> 2342 2342 4590 538 3615 11.7<br>
>> 2347 2347 16610 1678 5884 10.1<br>
>> 2348 2348 2961 373 883 12.6<br>
>> 2350 2350 8132 990 1180 12.2<br>
>> 2351 2351 2205 332 208 15.1<br>
>> 2355 2355 4059 409 548 10.1<br>
>> 2364 2364 5175 517 696 10.0<br>
>> 2349 2349 1111 158 459 14.2<br>
>> 2360 2360 809 127 190 15.7<br>
>> 2362 2362 3112 358 754 11.5<br>
>> 2365 2365 2522 340 271 13.5<br>
>> 2343 2343 12136 1112 5016 9.2<br>
>> 2344 2344 20956 2365 4161 11.3<br>
>> 2346 2346 2640 273 1062 10.3<br>
>> 2357 2357 3143 458 682 14.6<br>
>> 2358 2358 3432 337 532 9.8<br>
>> 2340 2340 1733 288 384 16.6<br>
>> 2352 2352 17358 1694 3511 9.8<br>
>> 2356 2356 15034 1780 10990 11.8<br>
>> 2359 2359 15907 1731 6464 10.9<br>
>> 8924 8924 639 160 103 25.0<br>
>> 8929 8929 734 107 66 14.6<br>
>> 8937 8937 2688 527 414 19.6<br>
>> 8932 8932 858 93 96 10.8<br>
>><br>
>> Y quiero graficar las 4 variables juntas. Creo que casi casi casi lo logro,<br>
>> salvo por (a) la barra de caps$PersonasRCVG, que pareciera cambia los<br>
>> valores del eje Y a otra escala... creo... y (b) porque me falta ordenar el<br>
>> gráfico por la línea de caps$Con12Meses (de mayor a menor).<br>
>> Va mi mejor intento:<br>
>> par(mar=c(4,4,3,1), #<br>
>> omi=c(0.1,0.1,0.1,0.1), #<br>
>> las=1, #<br>
>> mex=0.5, #<br>
>> cex.lab = 1, #<br>
>> cex.axis=0.7) # el tamaño de las leyendas<br>
>> barplot(caps$personas,<br>
>> <a href="http://names.ar" target="_blank">names.ar</a>=caps$CAPS,<br>
>> col="blue", border=F, space=.01)<br>
>> par(new=T)<br>
>> barplot(caps$PersonasRCVG, axes=F, ann=F, type="n", # crea la barra de<br>
>> caps$PersonasRCGV, pero cambia los ejes porque el resultado gráfico no es<br>
>> coherente con los valores (caps$PersonasRCVG siempre es un valor menor que<br>
>> caps$personas...)<br>
>> col="grey", border=F, space=.01)<br>
>> par(new=T)<br>
>> plot(caps$Con12Meses, axes=F, ann=F, type="n")<br>
>> points(caps$Con12Meses,type="l",col="black") # Crea la línea para<br>
>> caps$Con12Meses (por la cual quiero ordenar)<br>
>> points(caps$Con12Meses, pch=16, col="black") # agrega puntos negros<br>
>> rellenos a la línea<br>
>> par(new=T)<br>
>> plot(caps$prevalencia, axes=F, ann=F, type="n")<br>
>> axis(4) # Crea el eje secundario<br>
>> points(caps$prevalencia,type="l",col="red") # Crea la línea sobre el<br>
>> eje secundario<br>
>> points(caps$prevalencia, pch=16, col="red") # agrega puntos rojos<br>
>> rellenos a la línea<br>
>> text(caps$prevalencia, labels=paste(caps$prevalencia), pos=3, col="red", )<br>
>> # si se quiere poner la prevalencia en el gráfico.<br>
>> ¿Podrían por favor ayudarme con la solución? Les juro que renegué como loco<br>
>> para llegar a este punto y creo que ya no "veo" más nada en las ayudas!<br>
>> Además, ¿no hay una forma más "simple" de hacerlo?<br>
>> Muchas gracias, como siempre. (Algún día aprenderé...)<br>
>> --<br>
>> Mauricio<br>
>><br>
>> [[alternative HTML version deleted]]<br>
>><br>
>><br>
>> _______________________________________________<br>
>> R-help-es mailing list<br>
>> <a href="mailto:R-help-es@r-project.org" target="_blank">R-help-es@r-project.org</a><br>
>> <a href="https://stat.ethz.ch/mailman/listinfo/r-help-es" target="_blank">https://stat.ethz.ch/mailman/listinfo/r-help-es</a><br>
>><br>
>><br>
><br>
><br>
> --<br>
> Saludos,<br>
> Carlos Ortega<br>
> <a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a><br>
><br>
> [[alternative HTML version deleted]]<br>
><br>
><br>
> _______________________________________________<br>
> R-help-es mailing list<br>
> <a href="mailto:R-help-es@r-project.org" target="_blank">R-help-es@r-project.org</a><br>
> <a href="https://stat.ethz.ch/mailman/listinfo/r-help-es" target="_blank">https://stat.ethz.ch/mailman/listinfo/r-help-es</a><br>
><br>
</div></div></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><span style="font-family:verdana,sans-serif">Saludos,</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif">Carlos Ortega</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a></span><br>
</div></div></div>
</blockquote></div></div></div><span><font color="#888888"><br><br clear="all"><br>-- <br>Mauricio<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><span style="font-family:verdana,sans-serif">Saludos,</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif">Carlos Ortega</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a></span><br>
</div>
</div></div></div></blockquote></div><br><br clear="all"><br>-- <br>Mauricio<br>