[R-es] Gráfico de Barras

Mauricio Monsalvo m.monsalvo en gmail.com
Mie Sep 7 15:14:27 CEST 2016


Muchas gracias por tu respuesta, Carlos.

El 6 de septiembre de 2016, 17:47, Carlos Ortega <cof en qualityexcellence.es>
escribió:

> Hola,
>
> En los gráficos "base", las barras se construyen repartiéndolas sobre el
> eje "X". Para saber sobre qué punto cae el punto intermedio, la forma de
> hacerlo es recuperando los valores del objeto "barplot" como has hecho. Y
> una vez recuperados, utilizas estos puntos para pintar líneas de forma que
> coincidan las "Xs" de los centros de las barras y tus "Xs" que quieres
> añadir de tus puntos o líneas que vas a superponer.
>
> Esto, aparece reflejado en la ayuda de *barplot*, lo destaco en negrita.
> El epígrafe de la ayuda "Value" siempre detalla los valores que devuelve
> el objeto descrito.
>
> #--------------
>
> *Value*
>
> A numeric vector (or matrix, when beside = TRUE), say mp, *giving the
> coordinates of all the bar midpoints drawn, useful for adding to the graph.*
>
> If beside is true, use colMeans(mp) for the midpoints of each *group* of
> bars, see example.
> #--------------
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 6 de septiembre de 2016, 22:23, Mauricio Monsalvo <m.monsalvo en gmail.com
> > escribió:
>
>> Hola.
>> Siguiendo a Mittal (2001); R Graph Cookbook creo haber logrado construir
>> el gráfico de barras que buscada. La matriz que utilizo para el "height" va
>> adjunta.
>> Y mi sintaxis:
>> barplot(t(barras), col=col.segmentos, border=F
>>         , names.arg=Meses, las=2, cex=.75, cex.axis=0.8
>>         , ylab="% del Segmento sobre el Total")
>>        legend(.5, .2, ncol=5, cex=.75, bty="n" #bg="white" #, lwd=F ,
>> horiz=T), pch = 15
>>               , segmentos #Referencias
>>               , fill = col.segmentos, border = "darkblue" ) #
>>        grid(nx=NA, ny=NULL, col = "gray", lwd = 1, lty = 3) #
>>        abline(v=c(12, 24, 36, 48, 60), lwd = 1, lty = 3, col = "red")
>> #red para que se ven los cortes en los años
>>        text(c(6, 18, 30, 42, 54), rep(.3, 5), c(2011, 2012, 2013, 2014,
>> 2015))
>> ​Queda bastante lindo, pero el problema lo tengo con ​abline y text, que
>> quedan "desajustados" de los meses Dic de cada año, porque está mal
>> indicada la referencia en c(12, 24, 36, 48, 60), a pesar de que dim(barras)
>> y las categorías claramente son 67, que son las barras que contruyo.
>> Luego, cuando intento entender por qué, pruebo:
>> mm <- barplot(t(barras), col=col.segmentos, border=F
>>         , names.arg=Meses, las=2, cex=.75, cex.axis=0.8
>>         , ylab="% del Segmento sobre el Total")
>> y resulta:
>> > mm
>>  [1]  0.7  1.9  3.1  4.3  5.5  6.7  7.9  9.1 10.3 11.5 12.7 13.9 15.1
>> 16.3 17.5 18.7 19.9 21.1 22.3 23.5 24.7 25.9 27.1 28.3 29.5
>> [26] 30.7 31.9 33.1 34.3 35.5 36.7 37.9 39.1 40.3 41.5 42.7 43.9 45.1
>> 46.3 47.5 48.7 49.9 51.1 52.3 53.5 54.7 55.9 57.1 58.3 59.5
>> [51] 60.7 61.9 63.1 64.3 65.5 66.7 67.9 69.1 70.3 71.5 72.7 73.9 75.1
>> 76.3 77.5 78.7 79.9
>> Lo cual parece una buena pista, pero no consigo entender qué hace... por
>> qué el resultado no es 1:67? ¿Tengo que hacer algo especial para eso?
>> Obvio, que ahora si utilizo:
>>        abline(v=mm[c(12, 24, 36, 48, 60)], lwd = 1, lty = 3, col = "red")
>> #Para los Años
>>        text(mm[c(12, 24, 36, 48, 60)]-6, rep(.3, 5), c(2011, 2012, 2013,
>> 2014, 2015))
>> funcionaría, pero me parece poco intuitivo y además no entiendo por qué
>> lo hace y me "obliga" a crear el objeto mm, en lugar de hacerlo
>> directamente.
>> Muchas gracias.
>> --
>> Mauricio
>>
>> _______________________________________________
>> 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
>



-- 
Mauricio

	[[alternative HTML version deleted]]



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