У меня есть данные молекулярного секвенирования об относительной численности (в %) различных типов в 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 и, таким образом, перемещает другие метки. Кроме того, моя легенда покрывает большую часть моей гистограммы, и я не могу ее настроить.
Заранее большое спасибо - любая помощь в приведении гистограммы в приличный вид будет высоко оценена.
ggplot
. Посмотрите, приблизит ли вас этот поток: stackoverflow.com/questions/44334535/ - person Matt   schedule 25.07.2017layout()
), затем нарисовал бы гистограмму без легенды в первой области графика, затем нарисовал бы пустой график во второй области (выключите поле, оси, и аннотацию), а затем нарисуйте легенду в этой пустой области графика. Без воспроизводимого примера утомительно идти дальше. Если вы хотите использовать ggplot2, вам, возможно, придется изменить порядок данных, но легенда будет получена автоматически. - person Gavin Simpson   schedule 25.07.2017