r - 在R中的同一个图中排列许多图
问题描述
我想在一个图中有不同的图形,但是我用于它的命令 ( grid.arrange
) 扭曲了我的图表的条形。除此之外,我想将每个图表的标题(A、B、C ..)放在图表的顶部,而不是在它出现的一侧。
在图 1 中,我有一个图(正确的条形图),第二个图是所有图。有人可以帮我重新调整这个命令吗?
谢谢
library(ggplot2)
library(ggpubr)
A<-ggplot(dados, aes(specie, A)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
B<-ggplot(dados, aes(specie, B)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
C<-ggplot(dados, aes(specie, C)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
D<-ggplot(dados, aes(specie, D)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
E<-ggplot(dados, aes(specie, E)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
G<-ggplot(dados, aes(specie, G)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
H<-ggplot(dados, aes(specie, H)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
I<-ggplot(dados, aes(specie, I)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
J<-ggplot(dados, aes(specie, J)) +
geom_col(alpha = 0.5, aes(colour = trophic, fill = trophic,
group = trophic)) +
rotate_x_text(angle = 55)
grid.arrange(A, B, C, D, E, G, H, I, J, ncol=3)
我的数据:
specie A B C D E G H I J bodymass trophic
AAThry_swin 72 0 76.8 63.2 0 0 0 1.6 0 4000 1
ABHys_afri 23.2 0 77.6 68.8 0 0 0 0 0 14936.02 1
ACSylv_grim 48 0 52 0 0.8 0 0 15.2 0 15639.15 1
ADTrag_scri 100 2.4 100 2.4 17.6 0 3.2 14.4 0 43250.39 1
AERed_aru 100 0.8 53.6 0 2.4 0 25.6 0 0 58059.24 1
AFHipp_eq 14.4 0 6.4 0 4.8 0 4 0 0 264173.96 1
AGTrag_oryx 16 0 15.2 0 4 0 0 0 0 562592.69 1
AHSync_caf 81.6 0 41.6 8.8 8.8 0 25.6 2.4 0 592665.98 1
AILox_afric 1.6 28 1.6 0.8 3.2 0 47.2 3.2 0 3824539.93 1
BAOtol_cras 7.2 0 1.6 22.4 0 0 0 0 0 1206.61 2
BBMiop_tal 1.6 0 1.6 54.4 0 0 0 0.8 0 1248.86 2
BCLep_cap 14.4 0 12 0 0 0 0 0 0 1500 2
BEGenet_gen 0 0 0 80.8 0 0 0 0 0 1756.17 2
BFPhil_mont 20.8 0 100 16.8 4.8 0 2.4 12.8 0 4896.05 2
BGChlor_cyn 72.8 0 16.8 100 0 0 0 1.6 0 5000.01 2
BHCerc_mit 5.6 0 11.2 100 0 0 0 0.8 0 5041.29 2
BICivet_civ 43.2 0 52.8 19.2 0 0 0 16.8 41.6 12075.58 2
BJPota_larv 100 0 84 64 14.4 0 1.6 18.4 1.6 69063.79 2
BLHipp_amph 22.4 0 0 8.8 0 0 0 4 0 1536310.4 2
CALept_serv 0.8 56 3.2 80 0 14.4 0 23.2 78.4 11999.96 3
CBLyc_pict 0.8 10.4 0 23.2 0 12 0.8 9.6 19.2 21999.99 3
CCCan_mes 1.6 0 0 20.8 0 6.4 0 32 0 22000 3
CDPant_pa 18.4 24 1.6 12 0 17.6 27.2 4 8 52399.99 3
CEOryct_afer 11.2 1.6 22.4 0 0 0 0 5.6 4.8 56175.2 3
CFCroc_croc 51.2 0 0 22.4 0 5.6 0 1.6 0 63369.98 3
CGPant_le 0 15.2 0.8 27.2 0 57.6 24 1.6 1.6 158623.93 3
解决方案
你可以试试:
library(dplyr)
dados %>%
gather(type, value, -c("specie", "bodymass", "trophic")) %>%
ggplot(aes(x=specie, y=value)) + geom_col(alpha=0.5, aes(color=trophic, fill=trophic, group=trophic)) +
facet_wrap(~type, ncol=3) +
theme(axis.text.x = element_text(angle=55))
编辑:
要控制 trophic 的颜色,您需要将其从连续变量更改为因子:
dados %>%
gather(type, value, -c("specie", "bodymass", "trophic")) %>%
mutate(trophic = as.factor(trophic)) %>%
ggplot(aes(x=specie, y=value)) + geom_col(alpha=0.5, aes(color=trophic, fill=trophic, group=trophic)) +
facet_wrap(~type, ncol=3) +
scale_fill_manual("trophic", values = c("#66FF33", "#FFFF00", "#FFCC99")) +
scale_color_manual("trophic", values = c("#66FF33", "#FFFF00", "#FFCC99")) +
theme(axis.text.x = element_text(angle=55))
推荐阅读
- youtube-api - 通过 Youtube API 获得的条目不计算在内
- kotlin - 将 Kotlin 内联类传递给 Retrofit 函数是否安全
- python - 保存后无法加载 Keras-Tensorflow 模型
- c - 创建新进程时系统调用被阻塞(程序不会结束)
- git - 如何从 git log 中仅获取文件列表及其更改计数?
- selenium-webdriver - GGR 和 Selenoid 设置问题 - 无法在需要 selenoid 服务器机器上运行测试
- python - 如何使用 Tweepy 在 python 中过滤推文?
- vue.js - 如何在 Vue 中多次使用收音机作为组件?
- node.js - 在文件名中包含用户名
- firebase - Listview 在颤动中被提取后消失