You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何按基因密度自动对柱状图进行排序

解决方法

你只需要提前对数据框按gene_density列做排序,再将排序后的数据传入barplot即可实现自动排序,无需手动指定分类顺序。

修改后完整代码

species_name <- c("hepatitis D","HIV-1","influenza A","pandoravirus")
genome_size <- c(1.7, 9.7, 14, 2800)
gene_counts <- c(1,9,11 ,2500)
gene_density = gene_counts / (genome_size/1000)
expn <- data.frame (species_name, genome_size, gene_counts, gene_density)

# 按基因密度降序排序,若需要升序排列,去掉order里的负号即可
expn_sorted <- expn[order(-expn$gene_density), ]

barplot(expn_sorted$gene_density ,names.arg=expn_sorted$species_name,ylim=c(0,1000),xlab="species_name",ylab="gene_density",col="coral",main="Gene Density",border="coral2")

补充说明

  • order()是R内置的排序函数,传入列名前加负号代表按该列降序排列,不加负号默认升序
  • 如果你后续使用ggplot2绘图,也可以直接在映射x轴时用reorder(species_name, -gene_density)一步完成排序,写法更简洁

内容的提问来源于stack exchange,提问作者angel_30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:48:01