Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R ggplot barplot; Fill based on two separate variables

Tags:

A picture says more than a thousand words. As you can see, my fill is based on the variable variable.

Within each bar there is however multiple data entities (black borders) since the discrete variable complexity make them unique. What I am trying to find is something that makes each section of the bar more distinguishable than the current look. Preferable would be if it was something like shading.

http://s12.postimage.org/ltgs677ul/snapshot2.png

Here's an example (not the same dataset, since the original was imported):

dat <- read.table(text = "Complexity Method Sens Spec MMC 1 L Alpha 50 20 10 2 M Alpha 40 30 80 3 H Alpha 10 10 5 4 L Beta 70 50 60 5 M Beta 49 10 80 6 H Beta 90 17 48 7 L Gamma 19 5 93 8 M Gamma 18 39 4 9 H Gamma 10 84 74", sep = "", header=T)  library(ggplot2) library(reshape) short.m <- melt(dat) ggplot(short.m, aes(x=Method, y= value/100 , fill=variable)) +      geom_bar(stat="identity",position="dodge", colour="black") +      coord_flip() 
like image 543
user1476968 Avatar asked Jun 23 '12 15:06

user1476968


1 Answers

This is far from perfect, but hopefully a step in the right direction, as it's dodged by variable, but still manages to represent Complexity in some way:

ggplot(short.m, aes(x=Method, y=value/100, group=variable, fill=variable, alpha=Complexity,)) +    geom_bar(stat="identity",position="dodge", colour="black") +   scale_alpha_manual(values=c(0.1, 0.5, 1)) +   coord_flip() 

enter image description here

like image 70
Marius Avatar answered Sep 25 '22 13:09

Marius