積み上げ棒グラフのラベルとしてパーセンテージを使用するにはどうすればよいですか?

fakechek

ggplot2の積み上げ棒グラフの棒内にラベルとしてパーセンテージ数を表示しようとしています。3年前から他の投稿を見つけましたが、再現できません。グループに基づいたパーセンテージを示すggplot2で積み上げ棒を描画するにはどうすればよいですか?

その投稿への答えは、ほぼ正確に私がやろうとしていることです。

これが私のデータの簡単な例です:

df = data.frame('sample' = c('cond1','cond1','cond1','cond2','cond2','cond2','cond3','cond3','cond3','cond4','cond4','cond4'),
                'class' = c('class1','class2','class3','class1','class2','class3','class1','class2','class3','class1','class2','class3'))
ggplot(data=df, aes(x=sample, fill=class)) + 
    coord_flip() +
    geom_bar(position=position_fill(reverse=TRUE), width=0.7)

ここに画像の説明を入力してください

すべてのバーにパーセンテージ/分数を表示したいので、この場合はすべて33%になります。実際には、値がその場で計算されると便利ですが、必要に応じて手動でパーセンテージを渡すこともできます。誰か助けてもらえますか?

Side question: How can I reduce the space between the bars? I found many answers to that as well but they suggest using the width parameter in position_fill(), which doesn't seem to exist anymore.

Thanks so much!

EDIT:

So far, there are two examples that show exactly what I was asking for (big thanks for responding so quickly), however they fail when applying it to my real data. Here is the example data with just another element added to show what happens:

df = data.frame('sample' = c('cond1','cond1','cond1','cond2','cond2','cond2','cond3','cond3','cond3','cond4','cond4','cond4','cond1'),
                'class' = c('class1','class2','class3','class1','class2','class3','class1','class2','class3','class1','class2','class3','class2'))

Essentially, I'd like to have only one label per class/condition combination.

Mike H.

I think what OP wanted was labels on the actual sections of the bars. We can do this using data.table to get the count percentages and the formatted percentages and then plot using ggplot:

library(data.table)
library(scales)
dt <- setDT(df)[,list(count = .N), by = .(sample,class)][,list(class = class, count = count,
                percent_fmt = paste0(formatC(count*100/sum(count), digits = 2), "%"),
                percent_num = count/sum(count)
                ), by = sample]

ggplot(data=dt, aes(x=sample, y= percent_num, fill=class)) +   
  geom_bar(position=position_fill(reverse=TRUE), stat = "identity", width=0.7) +
  geom_text(aes(label = percent_fmt),position = position_stack(vjust = 0.5)) + coord_flip()

ここに画像の説明を入力してください

編集:集計でラベルのy値を計算する別のソリューション。これは、私たちが頼る必要がないようにするためposition_stack(vjust = 0.5)です:

dt <- setDT(df)[,list(count = .N), by = .(sample,class)][,list(class = class, count = count,
               percent_fmt = paste0(formatC(count*100/sum(count), digits = 2), "%"),
               percent_num = count/sum(count),
               cum_pct = cumsum(count/sum(count)),
               label_y = (cumsum(count/sum(count)) + cumsum(ifelse(is.na(shift(count/sum(count))),0,shift(count/sum(count))))) / 2
), by = sample]

ggplot(data=dt, aes(x=sample, y= percent_num, fill=class)) +   
  geom_bar(position=position_fill(reverse=TRUE), stat = "identity", width=0.7) +
  geom_text(aes(label = percent_fmt, y = label_y)) + coord_flip()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rの格子積み上げ棒グラフにパーセンテージとしてラベルを追加するにはどうすればよいですか?

分類Dev

パーセンテージを指定して、積み上げ棒グラフをプロットするにはどうすればよいですか?

分類Dev

度数積み上げ棒グラフを作成するにはどうすればよいですか。ただし、棒にパーセンテージラベルがあり、Rのy軸に度数があります。

分類Dev

パンダのカテゴリ別の積み上げ棒グラフを100%にスケールするにはどうすればよいですか

分類Dev

パンダの変数の1つを使用して積み上げ棒グラフをプロットするにはどうすればよいですか?

分類Dev

積み上げ棒グラフへのドリルダウンとして積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

R:ggplot2の積み上げ棒グラフのデータを欠かさずにデータをパーセンテージに集計するにはどうすればよいですか?

分類Dev

matplotlibの棒グラフ/積み上げ棒グラフのラベルを取得するにはどうすればよいですか?

分類Dev

ggplot2を使用して積み上げ棒グラフの順序と配色を変更するにはどうすればよいですか?

分類Dev

文字列データにC3を使用して積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

Rの同じ図に横棒グラフと積み上げ棒グラフを並べて表示するにはどうすればよいですか?

分類Dev

Chart.jsを使用して積み上げ棒グラフにインライン値を表示するにはどうすればよいですか?

分類Dev

積み上げ棒グラフの棒ごとにパーセンテージを計算するには?

分類Dev

ggplotを使用してRのファセットの積み上げ棒グラフに異なるgeom_text()ラベルを含めるにはどうすればよいですか?

分類Dev

3セットのデータの積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

シーボーンを使用して水平棒グラフを作成し、色相パラメーターで100%に積み上げるにはどうすればよいですか?

分類Dev

d3.jsを使用して、単一の積み上げ水平棒グラフのX値を設定するにはどうすればよいですか?

分類Dev

各凡例ごとに棒グラフでパーセンテージラベルをプロットするにはどうすればよいですか?

分類Dev

ハイチャートの積み上げ棒グラフの内側にテキストを表示するにはどうすればよいですか

分類Dev

問題の積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

積み上げ棒グラフのx軸ラベル位置の間隔を制御するにはどうすればよいですか?

分類Dev

ggplotを使用してRで積み上げパーセンテージ棒グラフを作成する

分類Dev

積み上げ棒グラフの棒の中にシリーズ名を表示するにはどうすればよいですか?

分類Dev

amchartsの積み上げ棒グラフをインタラクティブにするにはどうすればよいですか?

分類Dev

積み上げ棒グラフggplot2にパーセンテージラベルを追加します

分類Dev

Rのggplotで積み上げ積み上げ棒グラフの位置を変更するにはどうすればよいですか?

分類Dev

ggplot2を使用して、ワイドデータのセットから積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

バー自体にラベルを付け、バーの上にラベルを付けた水平積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

Rの積み上げ棒グラフの積み上げ順序を変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    Rの格子積み上げ棒グラフにパーセンテージとしてラベルを追加するにはどうすればよいですか?

  2. 2

    パーセンテージを指定して、積み上げ棒グラフをプロットするにはどうすればよいですか?

  3. 3

    度数積み上げ棒グラフを作成するにはどうすればよいですか。ただし、棒にパーセンテージラベルがあり、Rのy軸に度数があります。

  4. 4

    パンダのカテゴリ別の積み上げ棒グラフを100%にスケールするにはどうすればよいですか

  5. 5

    パンダの変数の1つを使用して積み上げ棒グラフをプロットするにはどうすればよいですか?

  6. 6

    積み上げ棒グラフへのドリルダウンとして積み上げ棒グラフを作成するにはどうすればよいですか?

  7. 7

    R:ggplot2の積み上げ棒グラフのデータを欠かさずにデータをパーセンテージに集計するにはどうすればよいですか?

  8. 8

    matplotlibの棒グラフ/積み上げ棒グラフのラベルを取得するにはどうすればよいですか?

  9. 9

    ggplot2を使用して積み上げ棒グラフの順序と配色を変更するにはどうすればよいですか?

  10. 10

    文字列データにC3を使用して積み上げ棒グラフを作成するにはどうすればよいですか?

  11. 11

    Rの同じ図に横棒グラフと積み上げ棒グラフを並べて表示するにはどうすればよいですか?

  12. 12

    Chart.jsを使用して積み上げ棒グラフにインライン値を表示するにはどうすればよいですか?

  13. 13

    積み上げ棒グラフの棒ごとにパーセンテージを計算するには?

  14. 14

    ggplotを使用してRのファセットの積み上げ棒グラフに異なるgeom_text()ラベルを含めるにはどうすればよいですか?

  15. 15

    3セットのデータの積み上げ棒グラフを作成するにはどうすればよいですか?

  16. 16

    シーボーンを使用して水平棒グラフを作成し、色相パラメーターで100%に積み上げるにはどうすればよいですか?

  17. 17

    d3.jsを使用して、単一の積み上げ水平棒グラフのX値を設定するにはどうすればよいですか?

  18. 18

    各凡例ごとに棒グラフでパーセンテージラベルをプロットするにはどうすればよいですか?

  19. 19

    ハイチャートの積み上げ棒グラフの内側にテキストを表示するにはどうすればよいですか

  20. 20

    問題の積み上げ棒グラフを作成するにはどうすればよいですか?

  21. 21

    積み上げ棒グラフのx軸ラベル位置の間隔を制御するにはどうすればよいですか?

  22. 22

    ggplotを使用してRで積み上げパーセンテージ棒グラフを作成する

  23. 23

    積み上げ棒グラフの棒の中にシリーズ名を表示するにはどうすればよいですか?

  24. 24

    amchartsの積み上げ棒グラフをインタラクティブにするにはどうすればよいですか?

  25. 25

    積み上げ棒グラフggplot2にパーセンテージラベルを追加します

  26. 26

    Rのggplotで積み上げ積み上げ棒グラフの位置を変更するにはどうすればよいですか?

  27. 27

    ggplot2を使用して、ワイドデータのセットから積み上げ棒グラフを作成するにはどうすればよいですか?

  28. 28

    バー自体にラベルを付け、バーの上にラベルを付けた水平積み上げ棒グラフを作成するにはどうすればよいですか?

  29. 29

    Rの積み上げ棒グラフの積み上げ順序を変更するにはどうすればよいですか?

ホットタグ

アーカイブ