ggplot2 和 dplyr,可视化一个字符列

问题描述

我目前正在尝试在一个巨大的样本量上制作一个漂亮的 geom_col 图。样本的名称(应该在 x 轴上)是数字和字符,因为我包含“N”作为阴性对照。

sample_names <- c(100,22,4,5,6,"N")
size <- c(3,2,3,3)

现在我想按照从最低的sample_name(意思是从样本编号4,然后是样本编号5,然后是样本编号6,样本编号22,样本编号100)到最高和以 N 结尾。由于列中的值被标识为字符,因此它始终以样本 100 开头(因为 1-0-0 在 2-2 之前)。

d <- data.frame(sample_names,size) %>%
     arrange(a)

enter image description here

这让我想到了一个问题,即绘图中的数据以不太好的方式排序。

enter image description here

以 N 结尾的升序排列会更令人愉悦。

我已经尝试将此列转换为数字并将结果 NA(代替“N”)替换为 0。

问题在于,该图包含样本之间的巨大差距:

d <- data.frame(sample_names,size) %>%
   arrange(a) %>%
   mutate(sample_names = as.numeric(sample_names))%>%
   replace_na(list(sample_names = 0))

enter image description here

所以我的问题是:您是否知道如何将字符列排序为“正确”的升序方式,或者您是否知道如何缩小 ggplot2 中 x 轴上的间隙? 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)