2010-04-25 5 views
0

Прошу прощения за неинформативный заголовок.ggplot geom_bar - бары слишком широкие

> y=read.csv(textConnection(scan("",sep="\n",what="raw"))) 
"","org","art","type","length" 
"191","gk","Finish","short",4 
"147","ik","Attending","short",7 
"175","gl","Finish","long",11 
"192","il","Attending","long",95 
"144","gm","Finish","between",5 
"161","im","Attending","between",15 
"164","tu","Something","young",8 
"190","tv","Something","old",4 

> decompress=function(x)x[rep(1:nrow(x),x$length),-ncol(x)] 
> exstatus=decompress(y) 

, а затем сюжет

ggplot(exstatus, aes(x=type, fill=art))+ 
geom_bar(aes(y=..count../sum(..count..)),position="dodge") 

Проблема заключается в том, что две крайние правые полосы («молодой», «старый») слишком толстый - «что-то» занимает всю ширину - что не то, что я намеревался.

alt text http://www.imagechicken.com/uploads/1272295176088679800.png

Я сожалею, что я не могу объяснить это лучше.

+0

Если данные не имеет значения для «конца» или «посещать» под «молодой» и «старой», что вы хотите? Вам нужен кластер с 3 барами с пустой 3-й панелью? –

+0

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

+0

Да. В принципе есть 3 возможных бара. Для 3 первых кластеров должны быть видны две полосы, для 2 последних кластеров должны быть скрыты две полосы. Прямо сейчас я считаю «молодым» и «старым» дважды - отсюда бары тикков. Я постараюсь лучше объяснить себя, обновленный вопрос. Спасибо, Николас. – Andreas

ответ

3

Использование facet_grid вместо позиции = «увернуться»

ggplot(exstatus, aes(x=art, fill=art))+ 
    geom_bar(aes(y=..count../sum(..count..))) + 
    facet_grid(~type,scales="free",space="free") 

alt text http://www.imagechicken.com/uploads/1272294360054813000.png

+0

Большое спасибо Алекс Браун. Это действительно хорошее решение! – Andreas

+0

только что понял, что фасетка делает процентную сумму до 100 в каждой фасете. Это не хорошо: - | – Andreas

+0

Настройка полей = T, новый запас («все» фасет) выглядит хорошо. Но тогда есть все другие грани .... – Andreas

Смежные вопросы