我有一个输入数据,我想创建一个分组图表,但完成创建后,问题是顺序与输入不同,它按字母顺序排列,另外我想更改字体样式斜体,仅用于物种名称。
> 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")
我想以与输入顺序相同的方式构建图表,并将斜体字体样式仅指定给物种名称ex(Drom Bactria ....)
答案 0 :(得分:0)
我想这就是你要的
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之前添加此行。