首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在冲积图的中间添加自定义标签

在冲积图的中间添加自定义标签
EN

Stack Overflow用户
提问于 2022-10-24 20:25:34
回答 1查看 24关注 0票数 1

我有下面的Alluvial

代码语言:javascript
复制
library(ggplot2)
library(ggalluvial)
data = structure(list(val = c(10, 30, 15, 30, 40, 12, 10, 30, 15), name = c("A", 
"B", "C", "A", "B", "C", "A", "B", "C"), group = c("gr1", "gr1", 
"gr1", "gr2", "gr2", "gr2", "gr3", "gr3", "gr3")), row.names = c(NA, 
-9L), class = "data.frame")
data['val1'] = c('45', '23', '44', '55', '34', '55', '12', '34', '89')
  ggplot(data,
       aes(x = group, stratum = name, alluvium = name,
           y = val,
           fill = name, label = val)) +
  scale_x_discrete(expand = c(.1, .1)) +
  geom_flow(aes(fill = name), alpha = .3, width = 1/9) +
  geom_stratum(aes(color = name), alpha = .9, width = 1/9) +
  geom_text(position = "stack", aes(x = group, y = val, label = val1))

正如您所看到的,标签不是垂直对齐在每个块的中心。有办法做到这一点吗?

谢谢你的指针

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-24 20:35:30

position = "stack"调用中设置geom_text()时,这是设置position = position_stack(vjust = 1, reverse = FALSE)的语法糖。

由于您希望文本垂直居中,您可以显式调用position_stack()函数,设置vjust = 0.5

代码语言:javascript
复制
ggplot(data,
    aes(
        x = group, stratum = name, alluvium = name,
        y = val,
        fill = name, label = val
    )
) +
    scale_x_discrete(expand = c(.1, .1)) +
    geom_flow(aes(fill = name), alpha = .3, width = 1 / 9) +
    geom_stratum(aes(color = name), alpha = .9, width = 1 / 9) +
    geom_text(
        position = position_stack(vjust = 0.5), # only this line has changed
        aes(x = group, y = val, label = val1)
    )

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74186454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档