我有一个数据框,它存储每个模型的计数值。型号名称是字母数字。然后,我使用 ggplot2 生成条形图,其中 x 轴为模型,y 轴为计数。我想订购我的 x 轴。 x 轴在数据框中和图中的 x 轴中显示如下。我想对其进行正确排序,例如 M_1、M_2、M_3、M_10、M_11、M_20 等
Model Count
M_1 73
M_10 71
M_100 65
M_11 65
M_110 64
M_111 71
M_13 70
M_130 73
M_2 72
M_20 69
M_200 63
M_21 72
M_210 72
M_211 67
M_3 78
M_30 76
M_300 59
M_31 73
M_310 64
我尝试使用 order()、mixedsort()、arrange() 首先对数据帧进行排序,并在 ggplot2 中使用 Factor() 。然而并没有成功。
geneDFColSum[with(geneDFColSum, order(geneDFColSum$Model)), ]
geneDFColSum[with(geneDFColSum, mixedsort(geneDFColSum$Model)), ]
library(dplyr)
arrange(geneDFColSum, Model)
有办法实现这一点吗?我可以将型号分成一个单独的列,并按该列排序。不过看看是否有简单的方法。
您需要对因子的水平进行排序,而不是对数据的行进行排序:
dd$Model = factor(dd$Model, levels = gtools::mixedsort(dd$Model))
ggplot(dd, aes(x = Model, y = Count)) + geom_col()
使用它作为输入数据:
dd = read.table(text = "Model Count
M_1 73
M_10 71
M_100 65
M_11 65
M_110 64
M_111 71
M_13 70
M_130 73
M_2 72
M_20 69
M_200 63
M_21 72
M_210 72
M_211 67
M_3 78
M_30 76
M_300 59
M_31 73
M_310 64", header = T, stringsAsFactors = FALSE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)