У меня есть следующий пример набора данных:
row gene Type PercID Count
1 AAC MS 0 0
71 AAC NDA 99.66 17
2 ABC superfamily ATP binding cassette transporter MS 0 0
72 ABC superfamily ATP binding cassette transporter NDA 98.5 7
3 acetyltransferase MS 0 0
73 acetyltransferase NDA 100 12
4 AcrA MS 94.6 6
74 AcrA NDA 0 0
5 AcrB MS 96 11
75 AcrB NDA 0 0
Я добавил столбец строк, чтобы сделать уникальные строки в ответ на полученную ошибку о том, что имена строк должны быть уникальными. Я преобразовал нули в NA, чтобы моя цветовая шкала отображала только допустимые значения (в данном случае 90-100).
Я использую этот код для создания сюжета:
library(ggplot2)
library(viridis)
mydata = read.csv("Mydata.csv", quote = "", fileEncoding = "UTF-8-BOM")
mydata2 = mydata
mydata2[, 4:5][mydata2[, 4:5] == 0] <- NA
ggplot(mydata2, aes(x = gene, y = Count, fill = PercID))+
geom_bar(position = position_fill(reverse = TRUE), stat = 'identity')+
facet_wrap(~ Type)+
coord_flip()+
scale_x_discrete(limits = rev(levels(mydata2$gene)))+
scale_fill_viridis(discrete = FALSE, name = "Percent Identity", option = 'plasma')+
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank())
Это создает график со всеми полосами одинаковой длины:
Я хочу, чтобы мои столбцы отражали фактические значения из столбца Count
в моих данных, чтобы они имели переменную длину.
Я попытался удалить stat = 'identity'
, однако это дает мне это сообщение об ошибке Error: stat_count() can only have an x or y aesthetic.
. Я также пытался удалить y = Count
, но затем получаю сообщение об ошибке, что мне нужна эстетика y.
Как я могу заставить свой график отображать длины полос, которые отражают значение Count
?