私が直面している問題は非常に簡単です。ggplot2、geom_textとorder
3種類のデータを棒グラフでY軸にプロットし、データフレームの別の列を使用して各グループに色付けしています。
グラフは次のようになります。
が
ggplot(cleaned_data, aes(x = Engine, fill = Errorcat)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels = percent) +
scale_fill_discrete("Events", breaks = c("Ok", "Waiting", "Error")) +
labs(y = "")
データは次のように織り込まれていて、生成: cleaned_data $ Errorcat < - 因子($ Errorcat cleaned_data、レベル= c( "Error"、 "Ok"、 "Waiting"))
私は、各ビンの真ん中にパーセンテージがあります。だから私は後ろに行き、ちょうどこのように、geom_text呼び出しを追加:Y座標が正しいではありません
数字は、唯一の彼らのrespectives正しいです:
ggplot(cleaned_data, aes(x = Engine, fill = Errorcat)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
geom_text(aes(y = ((..count..)/sum(..count..)) - 0.5* (((..count..)/sum(..count..))) ,
label = scales::percent((..count..)/sum(..count..))), stat = "count", vjust = -0.25, check_overlap = TRUE) +
scale_y_continuous(labels = percent) +
scale_fill_discrete("Events", breaks = c("Ok", "Waiting", "Error")) +
labs(y = "")
それは、この生成します注文。ご覧のように、45%は「トップ」の数字ですが、グリーンではなく青色に対応する必要があります。下から上に向かって、私はgeom_textが赤/青/緑を表示していると思いますが、赤/緑/青の棒のようにしたいのです。
私はそれをどのように行うことができないのか、なぜすぐにそれをやっていないのか理解できないようです。最終目標は、Errorcatに特定の色を割り当てることです。私は、緑色になるのを待って、青色になるのを待って、赤色になるためには、エラーを欲しい。そして伝説私は上に次にエラーを待って欲しい。
誰かが私が逃していることを説明するのに十分親切であれば...ありがとう!
ggplot(cleaned_data, aes(x = Engine, fill = Errorcat)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
geom_text(aes(y = (..count..)/sum(..count..), label = scales::percent((..count..)/sum(..count..))),
stat = "count", check_overlap = FALSE, position = position_stack(vjust = 0.5)) +
scale_y_continuous(labels = percent) +
scale_fill_discrete("Events", breaks = c("Ok", "Waiting", "Error")) +
labs(y = "")
みんなありがとう:上記のコメントの
「イベント」の要素の基本的な順序は、「ブレーク」に指定した順序とは異なります。 –
実際には違っています。 'cleaned_data $ Errorcat < - factor(cleaned_data $ Errorcat、levels = c(" Error "、" Ok "、" Waiting "))' 私は特にOkが緑色で、青色でエラーが赤色で、凡例はつまり、まず最初にOKを待ってからエラーを待つ。 – homer3018
ggplot2 2.2.0では、 'geom_text(aes(y =(..count ..)/ sum(.. count ..)、label = scales :: percent(.. .. count ..)のようなものが必要です。 – aosmith