我正在尝试生成一个看起来像进度条的一维图,它会根据主体所处的百分比而被填充。
我将百分位数作为数值,只是不知道如何绘制它,使其看起来像是根据百分位数(0-100)填充的水平条。
最佳答案
这可能会让您入门。
首先,让我们生成一些最少的样本数据
df <- data.frame(
Extraversion = 12,
Intraversion = 40)
然后,我们重塑数据并添加总计100%的列
library(tidyverse)
df <- df %>%
gather(key, val) %>%
mutate(
key = factor(key, rev(unique(key))),
Total = 100)
我们定义了一个方便功能,可在“进度条”中生成文本
format_value <- function(key, val) {
qual <- c("very low", "low", "average", "high", "very high", "max")
sprintf(
"%s - %ith percentile - %s",
key, val, qual[findInterval(val, seq(0, 100, by = 20))])
}
现在我们准备绘制
ggplot(df, aes(key, val)) +
geom_col(fill = "forestgreen") +
geom_col(aes(y = Total), alpha = 0.5, colour = "black") +
geom_text(
aes(y = 5, label = format_value(key, val)),
hjust = 0,
fontface = "bold",
colour = "white") +
coord_flip() +
theme_minimal() +
theme(
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank())
关于r - 如何在ggplot2中创建 "progress bar"类型的图以显示某人所在的百分比?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56885909/