[英]turning stacked bar graph from R into ggplot2
这类问题通常是数据重组问题。 请参阅将 data.frame 从宽格式重塑为长格式。
以下代码使用内置数据集iris
,具有 4 个数字列,plot 是一个条形图,其中数据值在重塑数据后被切割成多个级别。
我选择了截止点0.2
和0.7
,但(0, 1)
中的任何其他数字都可以。 截止向量是brks
和级别名称labls
。
library(tidyverse)
data(iris)
brks <- c(0, 0.2, 0.7, 1)
labls <- c('Small', 'Medium', 'Large')
iris[-5] %>%
pivot_longer(
cols = everything(),
names_to = 'Category',
values_to = 'Value'
) %>%
group_by(Category) %>%
mutate(Value = (Value - min(Value))/diff(range(Value)),
Level = cut(Value, breaks = brks, labels = labls,
include.lowest = TRUE, ordered_result = TRUE)) %>%
ggplot(aes(Category, fill = Level)) +
geom_bar(stat = 'count', position = position_fill()) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.