eric
2015-May-19 05:56 UTC
[R-es] como hacer un simple barchart horizontal ordenado por el valor ...
Estimada comunidad, me resulta muy frustrante no poder hacer un simple barchart como yo quisiera (es la primera vez que intento hacer uno en todo caso :)). Gaste todo el dia buscando y no puedo darle las caracteristicas que necesito: Tengo un simple data.frame que adjunto, con paises y los puntajes que obtuvieron en una prueba y quiero hacer un barchart con los puntajes en orden ascendente, con las barras horizontales y que muestre el nombre de los paises, aunque sea con la fuente pequeña. Uso el siguiente codigo y no resulta: barchart(ave ~ CNT, data=math, horizontal=TRUE) con eso consigo que sea horizontal, pero no se como hacer que las barras se ordenen de acuerdo al valor de "ave", lo que sospecho tiene que ver con "index.cond", pero no se como usarlo. Tampoco puedo siquiera hacer que aparezca una leyenda con auto.key=TRUE Alguna sugerencia ? Adjunto los datos. Muchas gracias. -- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo. ------------ próxima parte ------------ "","CNT","mave1" "1","China-Shanghai",610.547029689009 "2","Singapore",568.359669004688 "3","Hong Kong-China",561.274095760171 "4","Chinese Taipei",557.576850661594 "5","Korea",554.228403556527 "6","Macao-China",538.313045529522 "7","Liechtenstein",537.89977440273 "8","Japan",536.06459985829 "9","Estonia",521.805049947688 "10","Switzerland",520.672206367441 "11","Poland",520.592925917083 "12","Belgium",519.868902163545 "13","Czech Republic",519.774977679745 "14","Netherlands",518.133386278027 "15","Germany",513.932189262148 "16","Vietnam",510.589966686832 "17","Canada",509.328982185295 "18","Austria",507.711752555205 "19","Finland",507.525776248726 "20","Massachusetts (USA)",506.372065989553 "21","New Zealand",501.390670985784 "22","Connecticut (USA)",501.166969475545 "23","Ireland",500.903629186603 "24","France",499.470435703447 "25","Latvia",495.449250046447 "26","Spain",495.35986490736 "27","Iceland",493.147076539339 "28","Australia",492.842854775223 "29","Italy",491.904166765359 "30","Luxembourg",490.269929802206 "31","Norway",489.752776099018 "32","United Kingdom",489.645544900861 "33","Perm(Russian Federation)",487.16372350937 "34","Denmark",486.185453107873 "35","Slovak Republic",485.644733882001 "36","Hungary",485.39084006237 "37","Portugal",484.559764732611 "38","Slovenia",484.48120878024 "39","Russian Federation",482.702941942267 "40","United States of America",481.032476175171 "41","Sweden",479.152938027872 "42","Lithuania",478.680924534431 "43","Croatia",469.833120826677 "44","Israel",468.885821661721 "45","Florida (USA)",464.957490506329 "46","Greece",453.890067746342 "47","Turkey",448.833618275578 "48","Serbia",447.735377497865 "49","Romania",445.797145644462 "50","Chile",444.419644267795 "51","Bulgaria",442.158361359334 "52","Thailand",441.147091114139 "53","Kazakhstan",431.537518371212 "54","United Arab Emirates",431.373626017391 "55","Malaysia",422.788401404657 "56","Mexico",418.634889170561 "57","Uruguay",410.957686980245 "58","Montenegro",406.39744432968 "59","Costa Rica",406.093702194698 "60","Argentina",395.402240758294 "61","Albania",395.296184882985 "62","Tunisia",387.279744860449 "63","Colombia",386.185442036813 "64","Jordan",382.623486558681 "65","Brazil",382.500792689023 "66","Qatar",376.761702626299 "67","Indonesia",376.07179037709 "68","Peru",367.810655227838
Emilio L. Cano
2015-May-19 06:56 UTC
[R-es] como hacer un simple barchart horizontal ordenado por el valor ...
Eric, En un barplot, el orden que se usa es el de los niveles del factor. Al crear un factor, por defecto este orden es alfabético. Lo que tienes que hacer es reordenar los niveles del factor usando el criterio de la otra variable (podría ser cualquier función aplicada a las observaciones del factor, en tu caso sólo tienes una). Prueba este código: math <- read.table("math.txt", header = TRUE, sep=",", stringsAsFactors TRUE, row.names = 1) math$CNT <- reorder(math$CNT, math$mave1, mean) library(lattice) barchart(CNT ~ mave1, data = math[order(math$mave1),], horizontal = TRUE) Por otra parte, ¿qué quieres pintar en la leyenda? Necesitarías alguna otra variable, por ejemplo el continente, el idioma, o algo así... Un saludo, Emilio *Emilio L. Cano* Mobile: +34 665 676 225 skype: emilopezcano twitter: @emilopezcano http://emilio.lcano.com El 19 de mayo de 2015, 7:56, eric <ericconchamunoz en gmail.com> escribió:> Estimada comunidad, me resulta muy frustrante no poder hacer un simple > barchart como yo quisiera (es la primera vez que intento hacer uno en todo > caso :)). Gaste todo el dia buscando y no puedo darle las caracteristicas > que necesito: > > Tengo un simple data.frame que adjunto, con paises y los puntajes que > obtuvieron en una prueba y quiero hacer un barchart con los puntajes en > orden ascendente, con las barras horizontales y que muestre el nombre de > los paises, aunque sea con la fuente pequeña. Uso el siguiente codigo y no > resulta: > > barchart(ave ~ CNT, data=math, horizontal=TRUE) > > con eso consigo que sea horizontal, pero no se como hacer que las barras > se ordenen de acuerdo al valor de "ave", lo que sospecho tiene que ver con > "index.cond", pero no se como usarlo. > > Tampoco puedo siquiera hacer que aparezca una leyenda con auto.key=TRUE > > Alguna sugerencia ? > > Adjunto los datos. > > Muchas gracias. > > > > > > > > -- > Forest Engineer > Master in Environmental and Natural Resource Economics > Ph.D. student in Sciences of Natural Resources at La Frontera University > Member in AguaDeTemu2030, citizen movement for Temuco with green city > standards for living > > Nota: Las tildes se han omitido para asegurar compatibilidad con algunos > lectores de correo. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]