2015-01-29 8 views
2

У меня есть набор данных:Создание бар границы для сложенной гистограммы в 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: для каждой группы в легенде имеется дополнительная диагональная линия. Я хочу удалить эту строку.

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

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

+0

Если я правильно Вас понял, вы почти там - чтобы граница просто добавить 'цвет =«черный»' в 'geom_bar' звоните в свой первый сюжет. Быстрое исправление черной строки в легенде состоит в том, чтобы построить два вызова «geom_bar», подавляя «легенду» в вызове с помощью границы. Итак: 'ggplot (DF1, aes (x = Rank, y = value, fill = variable)) + geom_bar (stat =" identity ") + geom_bar (stat =" identity ", color =" black ", show_guide = FALSE) ' – user20650

+1

Да, это именно то, что я хочу, хотя я бы предпочел также иметь черную границу над легендой (но просто удалив диагональную линию). Большое вам спасибо за вашу помощь. Если вы разместите этот ответ ниже, я бы принял его в качестве ответа. спасибо –

ответ

3

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

Чтобы получить границу, просто добавьте 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))