如何在桑基图中垂直改变节点的位置

Posted

技术标签:

【中文标题】如何在桑基图中垂直改变节点的位置【英文标题】:How to change position of nodes vertically in Sankey Diagram 【发布时间】:2019-08-28 05:03:37 【问题描述】:

如何垂直更改 Sankey 图中节点的位置(y 轴),以使它们位于前一个节点的中间/中心而不是底部?

我的数据集:

> dput(final_df_2)
structure(list(individual_id = c(21L, 21L, 22L, 23L, 24L, 24L, 
24L, 25L, 26L, 26L, 26L, 26L, 26L, 26L, 26L, 27L, 27L, 27L, 27L
), number = c(1L, 2L, 1L, 1L, 1L, 2L, 3L, 1L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 1L, 2L, 3L, 4L), treatment = structure(c(5L, 3L, 
2L, 4L, 1L, 5L, 3L, 2L, 3L, 5L, 2L, 5L, 4L, 5L, 1L, 2L, 5L, 5L, 
3L), .Label = c("Adalimumab", "Etanercept", "Infliximab", "Rituximab", 
"(Missing)"), class = "factor")), row.names = c(1L, 2L, 8L, 14L, 
20L, 26L, 27L, 33L, 39L, 45L, 46L, 52L, 53L, 59L, 60L, 66L, 72L, 
73L, 74L), class = "data.frame")

我的代码:

ggplot(final_df_2 , aes(x = number, stratum = treatment, alluvium = individual_id, fill = treatment, label = treatment)) +
  scale_fill_brewer(type = "qual", palette = "Set3") +
  geom_flow(width = 1/10) +
  geom_stratum(width = 1/10, colour = NA) +
  scale_x_continuous(breaks = 1:7, labels = c("1st Therapy", "2nd Therapy", "3rd Therapy", "4th Therapy", "5th Therapy", "6th Therapy", "7th Therapy"))+
  ggtitle("Treatment across observation period")+
  theme_minimal()+
  theme( panel.grid.major = element_blank(),
         panel.grid.minor = element_blank(), axis.text.y = element_blank())

我原来的桑基图:

我想做的由红色节点表示:

感谢您对此提供的任何帮助。提前致谢。

【问题讨论】:

【参考方案1】:

你试过了吗

  var options = 
  width: 900,
  sankey:  node:  nodePadding: 80  ,
;

【讨论】:

以上是关于如何在桑基图中垂直改变节点的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何访问桑基图的节点属性

省略某些值时如何创建桑基图

LabVIEW中如何动态改变控件位置?

如何在不改变世界坐标中的相对位置、大小和比例的情况下将 SCNNode 作为子节点添加到父节点

如何改变扩展垂直布局组unity3d的方向?

如何在冲积或桑基图中获得 y 轴上的百分比?