У меня возникла проблема с использованием geom_bar для сравнения двух методов классификации образцов, где я хочу показать, что одни и те же образцы по классификатору A могут привести к другим результатам, чем по классификатору B.
Пример того, как я пытался это сделать, выглядит следующим образом:
library("ggplot2")
dfr <- data.frame(class=sample(LETTERS[1:5], 10, replace=TRUE),
classifier=rep(c("A", "B"), c(5, 5)),
id=rep(paste("X_", 1:5, sep = ""), 2))
Здесь у нас есть data.frame, дающий нам информацию о классификаторе, классе и идентификаторах образцов.
Мы можем отобразить это, чтобы показать, как пропорция каждого класса изменяется в зависимости от того, какой классификатор используется.
ggplot(dfr, aes(x = classifier, fill = class)) +
geom_bar(stat="bin")
Однако, если я хочу сравнить образцы друг с другом (т.е. иметь одинаковые образцы рядом друг с другом, чтобы точно увидеть, какие образцы изменились и на что), я использую следующий код
ggplot(dfr, aes(x=classifier, y=as.factor(id), fill=class)) +
geom_bar(stat="identity", colour="WHITE")
Вот где моя проблема. Как вы можете видеть, по какой-то причине площадь сложенных секций намного больше, чем дальше вы смотрите на панель, и я не знаю, как заставить размер быть одинаковым.
Любые рекомендации относительно того, как лучше всего исправить это, чтобы области разделов были равными, а метки идентификаторов, примыкающие к их назначенному разделу, будут высоко оценены!
geom_bar
пытается выполнить агрегирование, которое допустимо только для числовых данных. В вашем случае вместо этого будет работать+ geom_tile(colour = "white")
? - person tonytonov   schedule 13.07.2015