2013-07-02 5 views
1

Привета Я хотел сделать сложены barplot использования ggplot2 с данными нижекак я могу сделать сложен barplot с ggplot2

Chr NonSyn_Snps Total_exonic_Snps 
A01 9217 13725 
A02 6226 9133 
A03 14888 21531 
A04 5272 7482 
A05 4489 6608 
A06 8298 12212 
A07 6351 9368 
A08 3737 5592 
A09 12429 18119 
A10 7165 10525 

В основном я хочу, чтобы стек NonSyn_Snps и Total_exonic_Snps для каждой хромосомы, но, к сожалению, я не могу.

Это то, что я пытался до сих пор не повезло

ggplot(Chr.df_mod, aes(Chr, Total_exonic_Snps, fill = NonSyn_Snps)) + geom_bar(stat = "identity", colour = "white") + xlab("Chromosome") + ylab("Number of SNPs") 

Я получаю сюжет, но не уложены один.

enter image description here

Может кто-то пожалуйста, помогите мне устранить это.

Благодаря Upendra

ответ

6

ggplot идиома лучше всего работает с длинными данными, а не широких данных. Вам нужно растопить свой широкоформатный фрейм в длинный формат, чтобы воспользоваться многими опциями ggplot.

# get data 
dat <- read.table(text = "Chr NonSyn_Snps Total_exonic_Snps 
A01 9217 13725 
A02 6226 9133 
        A03 14888 21531 
        A04 5272 7482 
        A05 4489 6608 
        A06 8298 12212 
        A07 6351 9368 
        A08 3737 5592 
        A09 12429 18119 
        A10 7165 10525", header= TRUE) 


# load libraries 
require(ggplot2) 
require(reshape2) 

# melt data from wide to long 
dat_m <- melt(dat) 

# plot 
ggplot(dat_m, aes(Chr, value, fill = variable)) + 
    geom_bar(stat = "identity") + 
    xlab("Chromosome") + 
    ylab("Number of SNPs") 

enter image description here

+0

Круто. Спасибо за подсказку и ответ. Очень признателен. – upendra

+0

Не беспокойтесь, если вы хотите попробовать более интерактивное построение (например, наведение мыши для получения значений и т. Д.), Дайте ['rCharts'] (http://ramnathv.github.io/rCharts/) – Ben