2015-11-05 2 views
3

Итак, я пытаюсь отобразить эту гистограмму с помощью переменной compage. Код, я использую это:Гистограмма ggplot, показывающая дополнительную серовую полосу

hist.wrinko.age <- ggplot(ESSdata.oldage3, aes(wrinco2,fill=compage)) 
         + theme(legend.position = "right") 
         + geom_bar(aes(y=..density..), binwidth=1, position="dodge") 
         + labs(x="WRINCO by age group", y = "Density") 
         + scale_x_continuous(breaks=seq(0, 10, 1) 
         ) 

Он работает нормально, но гистограмма выглядит следующим образом:

histogram

В основном легенда показывает 2 переменные, но гистограмма показывает 3.

Я понятия не имею, откуда идут третьи серые линии - что-то не так с моим кодом?

+0

Трудно сказать, не видя никаких данных. Я попытался воспроизвести «бриллианты»: 'ggplot (подмножество (бриллианты, цвет% в% c (« D »,« E »)), aes (x = carat, fill = color))' с остальной частью вашего сюжета команды, но это выглядит просто отлично. Как выглядят ваши данные? 'dput (head (ESSdata.oldage3, 20))' было бы хорошо. – Gregor

+0

Данные выглядят следующим образом: структура (список (wrinco2 = c (4, 7, 6, 10, 9, 8, 4, 8, 10, 4), rspslvo2 = c (7, 7, 6, 5, 8, 10, 5, 10, 5, 7), svclvo2 = c (2, 2, 2, 2, 2, 2, NA, 2, 0, 2), agea = c (27, 33, 53, 40, 36 , 77, 20, 51, 49, 86), compage = structure (c (1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L), .Label = c ("0", " 1 "), class =" factor ")), .Names = c (" wrinco2 ", " rspslvo2 "," svclvo2 "," agea "," compage "), row.names = c (" 1 ", «2», «3», «4», «5», «6», «7», «8», «9», «10»), class = «data.frame») – LionelBlair

+0

Когда я запускаю ваши код на данные, которыми вы делитесь, я не вижу серые полосы. Можете ли вы поделиться данными, которые воспроизводят проблему? – Gregor

ответ

1

Серые полосы добавляются, когда есть данные для построения (значения x и y), но переменная fill равна NA.

Самый простой способ исключить NA из ваших данных является na.omit функция

ggplot(na.omit(ESSdata.oldage3), ...