Несоответствие меток гистограммы с накоплением R

У меня есть данные молекулярного секвенирования об относительной численности (в %) различных типов в 9 различных образцах, и я пытаюсь изобразить их в виде гистограммы с цветовой кодировкой (где каждому типу соответствует свой цвет). Достаточно просто в Excel, но для полного новичка в R я немного борюсь. Мои данные представлены в формате excel (отформатированы в виде вкладок), где первая строка - это метки (например, имя образца) - при ее построении метки столбцов неуместны, не совпадают, а R отображает первую строку моего файла excel (имена) как отдельное значение (картинки прилагаются). Что у меня есть до сих пор:

attach(data) 
data.1<-as.matrix(data)
par(mfrow=c(1,1))
barplot(data.1, col=c("aquamarine3","azure2","blue2","brown3","cadetblue3","deepskyblue3","firebrick3","gold3","darkorange3","darkorchid3","darkseagreen","darkslateblue","darkviolet","deeppink4"), main=".", xlab="Unit/Treatment", ylab="% Relative abundance")
detach(data)

legend("topright", inset=c(-0.2,0),
       legend = c("Unassigned", "Acidobacteria","Actinobacteria","Bacteroidetes","Chlorobi","Chloroflexi","Firmicutes","Gemmatimonadetes","Planctomycetes","Proteobacteria","Verrucromicrobia","Euryarchaeota","Crenarchaeota","Parvarchaeota"), 
       fill = c("aquamarine3","azure2","blue2","brown3","cadetblue3","deepskyblue3","firebrick3","gold3","darkorange3","darkorchid3","darkseagreen","darkslateblue","darkviolet","deeppink4"))
par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)
layout(mat, widths = rep.int(1, ncol(mat)),
       heights = rep.int(1, nrow(mat)), respect = FALSE)

В результате получаю следующее:

Попытка Barchart, где R отображает имена моих образцов как x_1 и, таким образом, перемещает другие метки. Кроме того, моя легенда покрывает большую часть моей гистограммы, и я не могу ее настроить.

Заранее большое спасибо - любая помощь в приведении гистограммы в приличный вид будет высоко оценена.


person Ikol    schedule 25.07.2017    source источник
comment
Вам понадобится ggplot. Посмотрите, приблизит ли вас этот поток: stackoverflow.com/questions/44334535/   -  person Matt    schedule 25.07.2017
comment
Если вы хотите придерживаться базы R, я бы, вероятно, разделил область графика на две части (layout()), затем нарисовал бы гистограмму без легенды в первой области графика, затем нарисовал бы пустой график во второй области (выключите поле, оси, и аннотацию), а затем нарисуйте легенду в этой пустой области графика. Без воспроизводимого примера утомительно идти дальше. Если вы хотите использовать ggplot2, вам, возможно, придется изменить порядок данных, но легенда будет получена автоматически.   -  person Gavin Simpson    schedule 25.07.2017
comment
Большое спасибо за предложения, я попробую ggplot2. Как должны быть переупорядочены данные, если я решу использовать ggplot2?   -  person Ikol    schedule 26.07.2017