ggplotは、geomバープロットのカウントの横にかっこ内のシェアを表示します

2020-03-25 r ggplot2 label geom-bar

カテゴリ、カウント、シェアを含む単純なデータフレームがあり、 ggplotを使用してプロットしたいとします

cat1 <- c("category1",
          "category2",
          "category3",
          "category4",
          "category5")
count <- c(12, 43, 31, 25, 11)

df <- data.frame(cat1, count)
df$share <- df$count / sum(df$count) * 100

require(ggplot2)

ggplot(df, aes(cat1, count)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = round(count, 2)), vjust = "bottom", size = 5)

以下のスクリーンショット( このブログから取得)のように、各バーの上にあるラベルとしてカウントの横に角かっこでシェアを表示する方法はありますか?

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

Answers

これを試して

cat1 <- c("category1",
          "category2",
          "category3",
          "category4",
          "category5")
count <- c(12, 43, 31, 25, 11)

df <- data.frame(cat1, count)
df$share <- df$count / sum(df$count) * 100
df$label <- paste0(round(df$count, 2), " (", round(df$share, 1), "%)")
require(ggplot2)
#> Lade nötiges Paket: ggplot2

ggplot(df, aes(cat1, count)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = label), vjust = "bottom", size = 5)

2020-03-25にreprexパッケージ (v0.3.0)によって作成されました

手動でテキストを追加できます

ggplot(df, aes(cat1, count)) +
  geom_bar(stat = "identity") +
  annotate("text", x = 1, y = 14, label = "[square]",hjust=0.5, vjust=0, 
           cex=5, fontface=2, col="black")

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

Related