我的数据如下:
sp sample_name homo_anc het homo_dev Heterozygozity
1 BF RSFV1M 835314771 1857148 2106125 0.2212792
2 BF RSFV1N 832516832 3049895 1576519 0.3643218
3 BF RSFV1O 834367309 2651230 1762650 0.3160813
4 BF RSFV1P 828847720 2902735 1604046 0.3483194
5 BF RSFV1Q 835338722 2261941 1948946 0.2694231
...
21 WBM RSFV1I 833924008 3378924 2285658 0.4024499
22 WBM RSFV1J 833263882 3324019 2333676 0.3962252
23 WBM RSFV1L 828667189 3354676 2266616 0.4021003
并尝试使用以下图形绘制为geom_dotplot:
p <- ggplot(het, aes(x=sp, y=Heterozygozity, fill=sp, colour=sp))+
geom_dotplot(binaxis = "y", binwidth = 0.002, stackdir = "center", dotsize=7, binpositions="bygroup") +
# Custom the theme:
theme_bw() +
theme(
legend.position="none",
panel.border = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank(),
axis.title.x=element_blank(),
axis.ticks.x=element_blank()
)
但是BF和WBM这两个类别之间的空间太大,而且我需要在x轴上显示的顺序与数据中的顺序相同。我尝试添加coord_fixed(ratio = 3)
,但它只是捣碎了水平图,我尝试通过执行aes(x=sort(sp)...
来固定顺序,但它只对标签重新排序而没有移动数据点。