0
テーブルを積み重ね棒グラフとしてプロットし、棒グラフにパーセンテージを付けたいとします。次に例を示します。スタックされた棒グラフ、パーセンテージ値を持つラベルバー
data <- matrix(c(34, 66, 22, 78), ncol = 2)
data <- as.table(data)
colnames(data) <- c("shop1", "shop2")
rownames(data) <- c("prod1", "prod2")
library(reshape2)
data_m <- melt(data, varnames = c("Product", "Shop"), id.vars = "Product")
library(scales)
library(ggplot2)
ggplot(data_m, aes(x = Shop, y = value, fill = Product)) +
geom_bar(position = "fill", stat = "identity") +
scale_y_continuous(labels = percent_format()) +
labs(x = "", y = "")
私は
geom_text(data = data_m, aes(x = Shop, y = value,
label = paste0((value/100) * 100,"%")), size=4)
EDITになり:JanLauGeの答えで、私は
を取得しますここでは、パーセンテージが間違って割り当てられています。
もう1つの発言:上記の例で仮定したように、テーブルの列合計が100でなく91と同じでない場合の対処方法は?
実際、同様 '値/ 100'を試してみてください。しかし、一日の終わりには、ラベルを正確にどこにしたいかによって異なります。各チャンクの下部、中央、または上部。 – JanLauGe
理想的には、ラベルはhttp://t-redactyl.io/blog/2016/01/creating-plots-in-r-using-ggplot2-part-4-stacked-bar-のように各チャンクの中央にありました。 plots.html – Joe
複製、編集を参照 – JanLauGe