r - 在每个条上添加自定义文本
问题描述
有人可以帮我把文字放到每个栏上。我正在使用 geomtext 函数,但不确定如何在每个条上放置文本这是代码:
df <- read.csv("F:/open_end_frequency_response.csv")
colnames(df)[1] = "modality"
colnames(df)[2] = "First_response"
colnames(df)[3] = "Second_response"
colnames(df)[4] = "Third_response"
colnames(df)[5] = "Fourth_response"
colnames(df)[6] = "Fifth_response"
dput(df)
colnames(df) <- c("modality","First_response","Second_response","Third_response",
"Fourth_response", "Fifth_response", "Frequency")
df2 <- select(df, -Frequency)
dat <- melt(df2)
#Using modality as id variables
p1 <- ggplot(dat, aes(modality, value, fill=interaction(variable))) +
geom_bar(stat='identity', position='dodge') +
ggtitle("A: General OEQ") +
theme_bw() + theme(axis.text.x = element_text(angle=90, hjust=1, size = 10, face = "bold")) +
scale_fill_brewer('Open-end', palette='RdPu') + theme(legend.position = c(.51, .80)) +
theme(legend.title=element_blank()) +
xlab("") + ylab("Frequency") + theme(panel.border = element_blank()) +
theme(axis.line = element_line(colour = "black")) +
theme(legend.key.size = unit(1.0, "cm"), legend.key.width = unit(0.5,"cm"),
legend.key.height = unit(0.5,"cm")) +
theme(legend.text = element_text(size = 7)) +
geom_text(aes(label = "a"), position = position_dodge(0.9), size = 2,
vjust = -0.25, fontface="bold")
请在下面找到我的一条数据,希望这对您使用数据有所帮助。另外我不知道如何在stackoverflow上共享数据,请如果有人可以分享我的链接:
squads <- tibble::tribble(
~test, ~first_res, ~second_res, ~third_res, ~fourth_res, ~fifth_res,
"Appearance", 201L, 72L, 54L, 46L, 39L,
"Aroma", 8L, 17L, 17L, 24L, 13L,
"Flavor", 107L, 148L, 177L, 168L, 122L,
"Texture", 151L, 225L, 220L, 198L, 150L,
"Abstract", 282L, 260L, 360L, 356L, 402L
)
head(squads)
#> # A tibble: 5 x 6
#> test first_res second_res third_res fourth_res fifth_res
#> <chr> <int> <int> <int> <int> <int>
#> 1 Appearance 201 72 54 46 39
#> 2 Aroma 8 17 17 24 13
#> 3 Flavor 107 148 177 168 122
#> 4 Texture 151 225 220 198 150
#> 5 Abstract 282 260 360 356 402
由reprex 包于 2021-09-01 创建(v2.0.1)
解决方案
例如,当你需要 25 个文本时,让x <- c(1:25)
添加geom_text(aes(label = x), position = position_dodge(width = 0.9), vjust = -0.25)
喜欢
ggplot(dat, aes(modality, value, fill=interaction(variable))) +
geom_bar(stat='identity', position='dodge') +
ggtitle("A: General OEQ") +
theme_bw() + theme(axis.text.x = element_text(angle=90, hjust=1, size = 10, face = "bold")) +
scale_fill_brewer('Open-end', palette='RdPu') + theme(legend.position = c(.51, .80)) +
theme(legend.title=element_blank()) +
xlab("") + ylab("Frequency") + theme(panel.border = element_blank()) +
theme(axis.line = element_line(colour = "black")) +
theme(legend.key.size = unit(1.0, "cm"), legend.key.width = unit(0.5,"cm"),
legend.key.height = unit(0.5,"cm")) +
theme(legend.text = element_text(size = 7)) +
geom_text(aes(label = x), position = position_dodge(width = 0.9), vjust = -0.25)
然后结果就像
plot_grid(p1, p2, labels = c("p1", "p2"))
序列替换
最终代码编辑(我猜)
在dat <- melt(df2)
中,添加一些代码为dat <- melt(df2) %>% arrange(modality)
. 然后,例如x <- c(1:25)
,dat$text <- x
。现在,要绘制的代码是现在
p1 <- ggplot(dat, aes(modality, value, fill=interaction(variable))) +
geom_bar(stat='identity', position='dodge') +
ggtitle("A: General OEQ") +
theme_bw() + theme(axis.text.x = element_text(angle=90, hjust=1, size = 10, face = "bold")) +
scale_fill_brewer('Open-end', palette='RdPu') + theme(legend.position = c(.51, .80)) +
theme(legend.title=element_blank()) +
xlab("") + ylab("Frequency") + theme(panel.border = element_blank()) +
theme(axis.line = element_line(colour = "black")) +
theme(legend.key.size = unit(1.0, "cm"), legend.key.width = unit(0.5,"cm"),
legend.key.height = unit(0.5,"cm")) +
theme(legend.text = element_text(size = 7)) +
geom_text(aes(label = text, group = ), position = position_dodge(width = 0.9), vjust = -0.25)
推荐阅读
- c++ - C++17:如何在并行 STL 中获取工作项的索引
- ms-access - 访问:表中的自动编译字段(不是查询)
- ruby - 在 Ruby 中使用 define_method 覆盖类的所有实例方法
- c# - 使用 UIAutomation 检索工具条按钮
- android - 如何在 Exoplayer 中仅缓存 DASH 的第一段?
- php - 如何在搜索中删除 html 标签
- css - 单击其他位置后侧面板不会消失
- jquery - 如何在数据表中首先显示特定的键值
- nginx - 由 certbot 生成的配置文件上的 ngnix www 到 no-www
- ruby - Ruby Roo Gem - 将 Excel xlsx 表读入哈希