8

男性、女性、および NA の数が表示される棒グラフをプロットしたいと考えています。問題は、バーに色を付けるオプションを追加するとfill=gender、NA バーが失われることです。NAバーを色付きで維持するには、どのオプションを使用すればよいですか?

name <- c("Paul","Clare","John","What","Are","Robert","Alice","Jake")
gender <- c("male","female","male",NA,NA,"male","female","male")

df <- data.frame(name,gender)

ggplot(subset(df, gender=="male" | gender=="female" | is.na(gender)), aes(x=gender, fill=gender)) +
  geom_bar() + 
  labs(x=NULL, y="Frequency") +
  scale_fill_manual(values=c("red", "blue", "black"))
4

2 に答える 2

6

NAをそのままにしておく必要がある場合は、性別をNAを除外しない要因にすることができます。

# Convert to a factor, NOT excluding NA values
df$gender <- factor(df$gender, exclude = NULL)

ggplot(df, aes(x=gender, fill = gender)) +
  geom_bar(na.rm = FALSE) + 
  labs(x=NULL, y="Frequency") +
  scale_fill_manual("Gender", 
                    values=c("red", "blue", "black"))

ここに画像の説明を入力

NA はまだ凡例に表示されません - ggplot はここに NA をプロットすることを期待していません。いずれにせよ、性別変数を変更する必要があると思います。

于 2013-09-23T23:59:24.703 に答える