Создание границ столбцов для гистограммы с накоплением в R

У меня есть набор данных:

DF <- read.table(text="Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10", header=TRUE)

library(reshape2)
DF1 <- melt(DF, id.var="Rank")

Я хочу создать гистограмму с накоплением:

library(ggplot2)
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity")

Теперь я хочу добавить черную рамку для каждой полосы, чтобы она была визуально более четкой. Я думал, что это сработает:

ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity")+geom_histogram(colour = "black")

Однако это не то, что мне нужно.
Проблема 1: в каждой полосе нет черной границы.
Проблема 2: для каждой группы в легенде есть лишняя диагональная линия. Я хочу удалить эту строку.

Интересно, может ли кто-нибудь сообщить мне, что я сделал неправильно, и как правильно включить черную рамку для каждого столбца в гистограмме.

Большое спасибо.


person Head and toes    schedule 29.01.2015    source источник
comment
Если я вас правильно понял, вы почти у цели - чтобы получить границу, просто добавьте colour="black" к вызову geom_bar на первом графике. Быстрое решение для черной линии в легенде состоит в том, чтобы построить два вызова geom_bar, подавляя legend в вызове с рамкой. Итак: ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + geom_bar(stat = "identity") + geom_bar(stat = "identity", colour="black", show_guide=FALSE)   -  person user20650    schedule 29.01.2015
comment
Да, это именно то, что я хочу, хотя я бы предпочел также иметь черную рамку на легенде (но просто удалив диагональную линию). Большое спасибо за вашу помощь - если вы опубликуете этот ответ ниже, я приму его как ответ. Спасибо   -  person Head and toes    schedule 29.01.2015


Ответы (1)


обновить комментарий.

Чтобы получить границу, просто добавьте colour="black" к вызову geom_bar на первом графике. Быстрое решение для черной линии в легенде состоит в том, чтобы построить два вызова geom_bar, подавляя легенду в вызове с рамкой. Затем вы можете добавить к легенде черную рамку с темой legend.key.

ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
     geom_bar(stat = "identity") + 
     geom_bar(stat = "identity", colour="black", show_guide=FALSE)   +
     theme(legend.key = element_rect(colour = "black", size=1.5))
person user20650    schedule 29.01.2015