how to make each bar stand out (with border) in grouped barplot using ggplot2?

21 views
Skip to first unread message

Ishanee Srivastava

unread,
Aug 30, 2016, 12:33:33 PM8/30/16
to ggplot2
structure(list(coord = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 
34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 
47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 
60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 1L, 2L, 3L, 
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 
18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 
31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 
44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 
57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 
15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 
28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 
41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 
54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 
67L, 68L, 69L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 
25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 
38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 
64L, 65L, 66L, 67L, 68L, 69L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 
22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 
35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 
48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 
61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L), .Label = c("21906057-21916057", 
"21916057-21926057", "21976057-21986057", "21986057-21996057", 
"22006057-22016057", "22016057-22026057", "22036057-22046057", 
"22046057-22056057", "22056057-22066057", "22066057-22076057", 
"22076057-22086057", "22096057-22106057", "22106057-22116057", 
"22116057-22126057", "22126057-22136057", "22136057-22146057", 
"22146057-22156057", "22156057-22166057", "22166057-22176057", 
"22176057-22186057", "22186057-22196057", "22196057-22206057", 
"22206057-22216057", "22226057-22236057", "22236057-22246057", 
"22246057-22256057", "22256057-22266057", "22306057-22316057", 
"22316057-22326057", "22326057-22336057", "22336057-22346057", 
"22346057-22356057", "22356057-22366057", "22366057-22376057", 
"22426057-22436057", "22436057-22446057", "22446057-22456057", 
"22466057-22476057", "22476057-22486057", "22506057-22516057", 
"22516057-22526057", "22526057-22536057", "22536057-22546057", 
"22546057-22556057", "22556057-22566057", "22566057-22576057", 
"22576057-22586057", "22586057-22596057", "22596057-22606057", 
"22606057-22616057", "22616057-22626057", "22626057-22636057", 
"22636057-22646057", "22646057-22656057", "22686057-22696057", 
"22726057-22736057", "22736057-22746057", "22746057-22756057", 
"22806057-22816057", "22816057-22826057", "22826057-22836057", 
"22836057-22846057", "22866057-22876057", "22876057-22886057", 
"22886057-22896057", "22896057-22906057", "22906057-22916057", 
"22916057-22926057", "22956057-22966057"), class = "factor"), 
    variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L), .Label = c("gene1", "gene2", "gene3", 
    "gene4", "gene5"), class = "factor"), value = c(0L, 3L, 0L, 
    0L, 0L, 0L, 43L, 0L, 0L, 0L, 0L, 0L, 0L, 56L, 56L, 31L, 31L, 
    31L, 31L, 5L, 11L, 11L, 11L, 1L, 24L, 9805L, 72L, 74L, 74L, 
    74L, 74L, 74L, 74L, 74L, 2187L, 0L, 40L, 54L, 54L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 1L, 62L, 
    62L, 1L, 26L, 26L, 26L, 3L, 40L, 40L, 6L, 6L, 6L, 6L, 200L, 
    0L, NA, NA, NA, NA, 0L, 49L, NA, NA, 0L, NA, 0L, 0L, NA, 
    36L, NA, 1L, 54L, 54L, NA, NA, NA, NA, NA, 0L, 72L, NA, NA, 
    NA, NA, 0L, NA, NA, NA, 6L, 40L, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0L, NA, NA, NA, 1L, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 60L, NA, NA, 
    NA, NA, NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, 0L, NA, NA, 
    NA, 5L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, 12L, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, 31L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), exp = c("Extremely low", 
    "Very Low", "Extremely low", "Extremely low", "Extremely low", 
    "Extremely low", "Moderately high", "Extremely low", "Extremely low", 
    "Extremely low", "Extremely low", "Extremely low", "Extremely low", 
    "High", "High", "Moderately high", "Moderately high", "Moderately high", 
    "Moderately high", "Low", "Moderate", "Moderate", "Moderate", 
    "Very Low", "Moderate", "Extremely high", "High", "High", 
    "High", "High", "High", "High", "High", "High", "Extremely high", 
    "Extremely low", "Moderately high", "High", "High", "Low", 
    "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
    "Low", "Low", "Low", "Low", "Low", "Very Low", "High", "High", 
    "Very Low", "Moderately high", "Moderately high", "Moderately high", 
    "Very Low", "Moderately high", "Moderately high", "Low", 
    "Low", "Low", "Low", "Very high", "Extremely low", NA, NA, 
    NA, NA, "Extremely low", "Moderately high", NA, NA, "Extremely low", 
    NA, "Extremely low", "Extremely low", NA, "Moderately high", 
    NA, "Very Low", "High", "High", NA, NA, NA, NA, NA, "Extremely low", 
    "High", NA, NA, NA, NA, "Extremely low", NA, NA, NA, "Low", 
    "Moderately high", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, "Extremely low", NA, NA, NA, "Very Low", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "High", NA, NA, 
    NA, NA, NA, "Extremely low", NA, NA, NA, NA, NA, NA, NA, 
    NA, "Extremely low", NA, NA, NA, "Low", NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Extremely low", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, "Moderate", NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Moderately high", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("coord", 
"variable", "value", "exp"), row.names = c(NA, -345L), class = "data.frame")

I want to plot this data as grouped barplot using ggplot2. I performed these steps:

test[is.na(test)] <- 0

q<-ggplot(test, aes(x=coord, y=value, fill=factor(exp))) + geom_bar(aes(fill=exp),stat="identity",position = "dodge", colour="black")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))+scale_y_continuous(trans = "log10")

The bars which come in individual groups are not well-defined, can I border each of the bars in the group?

I will prefer ggplot2 as I have to add another layer of data wherein i have to highlight few x-axis labels which will be by referring another data set and merging to the existing 'test' d.f.


The coordinate 22036057-22046057, which is 7th label on x-axis, should have 2 bars. These are falling in the same 'exp' category. Even after colour="black", I get only one bar. I want these two bars show up with border around them.

Brian

unread,
Aug 30, 2016, 4:51:37 PM8/30/16
to Ishanee Srivastava, ggplot2
Try:

q<-ggplot(test, aes(x=coord, y=value, fill=factor(exp))) +
geom_bar(aes(fill=exp), color="black",stat="identity",position =
"dodge", colour="black")+theme(axis.text.x = element_text(angle = 90,
hjust = 1, vjust = 0.5))+scale_y_continuous(trans = "log10")

Outside of the aesthetic you can set things manually, usually.

HTH
Brian

On 08/30/2016 02:42 PM, Ishanee Srivastava wrote:
> |q<-ggplot(test,aes(x=coord,y=value,fill=factor(exp)))+geom_bar(aes(fill=exp),stat="identity",position
Reply all
Reply to author
Forward
0 new messages