Как упоминалось в @teunbrand, поместите свой size=
в aes()
, чтобы ggplot2
использовал это как aestheti c, сопоставленный с cat
, а затем используйте scale_size_manual()
, чтобы установить размеры, как вы уже сделали с fill=
.
ggplot(data, aes(x = as.factor(id), y=value, fill = cat, label = value)) +
geom_bar(stat = "identity", alpha=0.5) +
geom_text(aes(size = cat), position = position_stack(vjust = 0.7)) +
scale_fill_manual(values=c("#1E8E6B", "#6FBC84", "#FEEF51", "#EF6541", "#E81329")) +
scale_size_manual(values=c(4,3,2.5,2,1.5))
Вы можете изменить размеры, как вы sh, или установить значения с помощью функции seq()
.