我有比例与名字的情节。我试图通过比例订购ggplot但是即使我订购了数据框,该图也希望根据x轴值按字母顺序排序。如何按y轴值排序
resultOrder <- result[order(result$Proportion), ]
ggplot() +
geom_point(aes(resultOrder$Names, resultOrder$Proportion), resultOrder) +
geom_point(shape=1) +
labs(title="Number of SVs each repeat element is found in (as a percentage, filtered for >20%)", x="TY [°C]", y="Txxx") +
#geom_point(aes(mergedGroup4$Rptname, mergedGroup4$PercentageChangeForWholeSV),mergedGroup4) + theme(axis.text.x=element_text(angle=-90)) +
xlab("Repetitive elements") +
ylab("Percentage of SVs") +
theme(axis.text.x=element_text(angle=-90)) +
theme(legend.position="top")
示例数据
Names Values Proportion
FLAM_C FLAM_C 1112 20.03965
MER112 MER112 1115 20.09371
L1MA10 L1MA10 1116 20.11173
L1PB3 L1PB3 1121 20.20184
LTR78B LTR78B 1125 20.27392
MLT1H1 MLT1H1 1126 20.29194
(TG)n (TG)n 1127 20.30997
Charlie7 Charlie7 1129 20.34601
MamRep605 MamRep605 1133 20.41809
LTR16A LTR16A 1136 20.47216
Charlie1b Charlie1b 1139 20.52622
L1PA6 L1PA6 1142 20.58028
MLT1G1 MLT1G1 1148 20.68841
LTR67B LTR67B 1150 20.72445
MER58A MER58A 1162 20.94071
答案 0 :(得分:1)
您需要根据Names
订单设置Proportion
因素,以便ggplot
不对它们重新排序。所以试试这个:
df$Names = factor(df$Names, levels=df[order(df$Proportion), "Names"])
ggplot(df, aes(Names, Proportion)) + geom_point(shape=1)
我还重写了ggplot
的第一行,因为你使用的方式非常复杂,可以用更简单的方式完成。
答案 1 :(得分:1)
DMC是正确的。
试试这个,因为我简化了你的ggplot调用。对我而言,诀窍是将均值参数添加到reorder
:
df <- read.table(file = "clipboard")
ggplot(df) +
geom_point(aes(reorder(Names, Proportion, mean), y=Proportion)) +
coord_flip()