This question pregunta sobre cómo ordenar un gráfico de barras de acuerdo con una tabla no resumida. Tengo una situación ligeramente diferente. Esto es parte de mi datos originales:El pedido de gráficos de barra con ggplot2 de acuerdo con su tamaño, es decir, el valor numérico
experiment,pvs_id,src,hrc,mqs,mcs,dmqs,imcs
dna-wm,0,7,9,4.454545454545454,1.4545454545454546,1.4545454545454541,4.3939393939393945
dna-wm,1,7,4,2.909090909090909,1.8181818181818181,0.09090909090909083,3.9090909090909087
dna-wm,2,7,1,4.818181818181818,1.4545454545454546,1.8181818181818183,4.3939393939393945
dna-wm,3,7,8,3.4545454545454546,1.5454545454545454,0.4545454545454546,4.272727272727273
dna-wm,4,7,10,3.8181818181818183,1.9090909090909092,0.8181818181818183,3.7878787878787876
dna-wm,5,7,7,3.909090909090909,1.9090909090909092,0.9090909090909092,3.7878787878787876
dna-wm,6,7,0,4.909090909090909,1.3636363636363635,1.9090909090909092,4.515151515151516
dna-wm,7,7,3,3.909090909090909,1.7272727272727273,0.9090909090909092,4.030303030303029
dna-wm,8,7,11,3.6363636363636362,1.5454545454545454,0.6363636363636362,4.272727272727273
necesito solamente unas pocas variables de esto, a saber mqs
y imcs
, agrupados por su pvs_id
, por lo que se crea una nueva tabla:
m = melt(t, id.var="pvs_id", measure.var=c("mqs","imcs"))
puedo trazar esto como un gráfico de barras donde se puede ver la correlación entre MQS y IMCS.
ggplot(m, aes(x=pvs_id, y=value))
+ geom_bar(aes(fill=variable), position="dodge", stat="identity")
Sin embargo, me gustaría los barras resultantes para ser ordenadas por el MQS valor, de izquierda a derecha, en orden decreciente. Los valores IMCS se deben pedir con esos, por supuesto.
¿Cómo puedo lograr eso? En general, dado cualquier marco de datos fundido, que parece útil para graficar en ggplot2 y hoy es la primera vez que lo encuentro, ¿cómo especifico el orden de una variable?
PS no nombra un conjunto de datos t, ya que escribe sobre una función de instalación básica bastante importante que se transpone. –
En realidad, no es así. Puede distinguir conjuntos de datos de funciones. Pruébalo: 't <- 1: 5; t (matriz (1: 9, nrow = 3)) '. Si tuvieras que decir 't <- function (x) 1: x', sin embargo, te meterías en problemas. –
En cualquier caso, mala práctica. –