2015-11-03 1 views
0

У меня возникли проблемы с построением гистограммы из матрицы в R Матрица содержит 3 обработки (lamda0.001, lambda0.002, lambda0.005 для 4 популяций rec1, rec2 , rec3, con1). Матрица:Как сделать гистограмму из матрицы в R

 lambda0.001 lambda0.002 lambda.003 
rec1 1.0881688 1.1890554 1.3653264 
rec2 1.0119031 1.0687678 1.1751051 
rec3 0.9540271 0.9540271 0.9540271 
con1 0.8053506 0.8086985 0.8272758 

моя цель состоит в том, чтобы построить гистограмму с лямбда по оси Y и четыре группы по три процедуры в оси X. Эти четыре группы должны быть отделены небольшим перерывом от другого. Мне нужна помощь, это не имеет значения, если в ggplot2 просто регулярный сюжет (R basic). Спасибо большое!

+3

Я не думаю, что вы пытаетесь создать, фактически гистограмма (которая показывает частоту отсчета по оси y). Может быть, вы имеете в виду баррель? –

+0

Вы поняли. Ошибка моего новичка я не мог видеть! Я получил это отсюда, спасибо! :) –

ответ

1

Согласитесь с docendo discimus, что, возможно, штрих-код является тем, что вы ищете. Основываясь на том, что вы спрашиваете, хотя я бы изменить свои данные, чтобы сделать его немного легче работать с первым, и вы все еще можете сделать это с stat = "identity"

sapply(c("dplyr", "ggplot2"), require, character.only = T) 

# convert from matrix to data frame and preserve row names as column 
b <- data.frame(population = row.names(b), as.data.frame(b), row.names = NULL) 

# gather so in a tidy format for ease of use in ggplot2 
b <- gather(as.data.frame(b), lambda, value, -1) 

# plot 1 as described in question 
ggplot(b, aes(x = population, y = value)) + geom_histogram(aes(fill = lambda), stat = "identity", position = "dodge")   

# plot 2 using facets to separate as an alternative 
ggplot(b, aes(x = population, y = value)) + geom_histogram(stat = "identity") + facet_grid(. ~ lambda)