我的数据中有三个节点,用于创建附加的桑基图。我已经编辑了每个节点的标签。 y 轴上的顺序是按字母顺序排列的。这会产生一些交叉的“扫描”(我突出显示了黄色)。
我可以定义每个节点沿 y 轴的顺序吗?我想通过消除重叠扫描来改进图表。这是我用来创建绘图的代码。
ggplot(dfs2,
aes(x = x
, id = id
, split = y
, value = 1
, node=)) +
geom_parallel_sets(aes(fill = factor(VST)), alpha = 0.5,
axis.width = aw, sep = sp) +
geom_parallel_sets_axes(axis.width = aw, sep = sp) +
geom_parallel_sets_labels(colour = "black",
angle = 0, size = 3.5,
axis.width = aw, sep = sp) +
theme(axis.title = element_blank()
, axis.text.y = element_blank()
, axis.text.x = element_blank()
, axis.ticks = element_blank()
, panel.grid = element_blank())
我已经研究了一些因素,但还没有完全掌握这个概念。希望手动指定订单。
您应该做的是首先为三个节点创建一个自定义顺序的向量,例如:
myOrder <- c("Node 1", "Node 2", "Node 3") # you should replace the names Node 1 or 2 or 3 with actual node names
然后,使用向量“myOrder”将变量“split”转换为因子。
dfs2$split <- factor(dfs2$split, levels = myOrder)
然后更改代码,使用 ggplot 代码中分解的“split”变量:
ggplot(dfs2,
aes(x = x,
id = id,
split = split,
value = 1,
node = )) +
geom_parallel_sets(aes(fill = factor(VST)), alpha = 0.5, axis.width = aw, sep = sp) +
geom_parallel_sets_axes(axis.width = aw, sep = sp) +
geom_parallel_sets_labels(colour = "black", angle = 0, size = 3.5, axis.width = aw, sep = sp) +
theme(axis.title = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank())
由于我没有您提供的完整代码或数据,只是想到了这一点...请检查并恢复您得到的内容?