r - 重新排序与输入相同的组图
问题描述
我有一个输入数据,我想创建一个分组图表,但是当我完成创建时,问题是顺序与输入不同,它按字母顺序排列,另外我想将字体样式更改为斜体,仅用于物种名称。
> data <- read.table(
+ text = "Superfamily Drom Bactria Feru Paos
+ ERV 294 224 206 202
+ ERVL-MaLR 103 108 184 231
+ Gypsy 274 187 413 215
+ Pao 6 2 7 4
+ DIRS/Ngaro 15 14 45 25
+ Unknown 26 23 23 37
+ Undefined 76 77 80 95",
+ header = TRUE
+ )
> data
Superfamily Drom Bactria Feru Paos
1 ERV 294 224 206 202
2 ERVL-MaLR 103 108 184 231
3 Gypsy 274 187 413 215
4 Pao 6 2 7 4
5 DIRS/Ngaro 15 14 45 25
6 Unknown 26 23 23 37
7 Undefined 76 77 80 95
> data_long <- gather(data,
+ key = "Species",
+ value = "Distrubution",
+ -Superfamily)
> ggplot(data_long, aes(fill=Superfamily, y=Distrubution, x=Species)) + geom_bar(position="dodge2", stat="identity")
我想构建图表与输入顺序相同,斜体字体样式仅用于物种名称前(Drom Bactria ....)
解决方案
我想这就是你要的
data_long$Species <- factor(data_long$Species, levels = unique(data_long$Species))
ggplot(data_long, aes(fill=Superfamily, y=Distrubution, x=Species)) + geom_bar(position="dodge2", stat="identity") + theme(axis.text.x = element_text(face = "italic"))
如果 ggplot 接收到一个因子,它将使用水平顺序作为轴顺序。当涉及到字体时,您可以在主题参数中进行更改。
- 编辑 -
要以与输入相同的顺序获得超家族,您必须像我们对物种名称所做的那样创建一个因子。
data_long$Superfamily<- factor(data_long$Superfamily, levels = data$Superfamily)
放弃使用 readxl-package 将 excel 表读入 R,这应该可以更改物种名称:
colnames(data)[2:5] <- c("Alpha Drom", "Beta Bactria", "Gamma Feru", "Delta Paos")
在创建 data_long 之前添加此行。
推荐阅读
- java - 使用多模块 Maven 应用程序编译 grpc
- excel - 如何修复 Excel VBA 中所需的调试错误 424 对象
- python - 显示 Hive 查询的进度
- javascript - 以编程方式从 API 数据创建 Gatsby 页面
- php - AJAX 不发送帖子数据
- r - 如何从列范围总和为 0 的数据框中删除所有行?
- sql - 根据条件从表中获取前 N 行 - Oracle SQL
- react-google-maps - 防止 React Google Maps 在打开 InfoWindow 时跳转到页面中心
- xamarin - 如何在 xamarin android 中创建/设计自定义底部导航栏并将其连接到 xamarin.forms
- database - 什么时候应该在 MongoDB 中使用 _id?