2017-11-19 20 views
0

私は、verificationとprocedureという2つのカテゴリ変数を持つデータフレームを持っています。ggplot2()棒グラフの記入引数

私は、x軸上の手順と、y軸上のカウントではなく、対応するパーセンテージで棒グラフを作成したいと考えています。さらに、バーの塗りつぶしを確認したいと思います。

fill引数を使用しようとしたときに問題が発生しましたが、それはうまくいきませんでした。私の現在のコードは、黒い線(黒い線は検証された???のレベルを示すように見える塗りつぶし引数がないにもかかわらず)を持つすべての灰色のバーを取得します。その代わりに、レベルをさまざまな色にしたいと思います。

ありがとうございます!

出発点(DF):

df <- data.frame(verified=c("small","large","small","small","large","small","small","large","small"),procedure=c(1,2,1,2,1,2,2,2,2)) 

現在のコード:

library(dplyr) 
library(gglot2) 
df %>% 
    count(procedure,verified) %>% 
    mutate(prop = round((n/sum(n))*100),2) %>% 
    group_by(procedure) %>% 
    ggplot(aes(x = procedure, y = prop)) + 
    geom_bar(stat = "identity",colour="black") 

答えて

1

ちょうどあなたの最初のaesたりgeom_bar

# common elements 
g_df <- df %>% 
    count(procedure, verified) %>% 
    mutate(prop = round((n/sum(n)) * 100), 2) %>% 
    group_by(procedure) 

# fill added to initial aes 
g1 <- ggplot(g_df, aes(x = procedure, y = prop, fill = verified)) + 
    geom_bar(stat = "identity", colour = "black") 

# fill added to geom_bar 
g2 <- ggplot(aes(x = procedure, y = prop)) + 
    geom_bar(aes(fill = verified), stat = "identity", colour = "black") 

両方g1g2農産物内にfill = verifiedを追加その私の答えにコメントでeipi10によって示唆されるように

enter image description here

以下同じプロット、あなたはそれfactor、下の自分のコードの変更を行うことによってxaxisをクリーンアップできます。

df %>% 
    count(procedure, verified) %>% 
    mutate(prop = n/sum(n)) %>% 
    ggplot(aes(x = factor(procedure), y = prop, fill = verified)) + 
    geom_bar(stat = "identity", colour = "black") + 
    labs(x = "procedure", y = "percent") 

enter image description here

を生成します
関連する問題