【问题标题】:How to reverse arrows (tails) in Diagrammer, R?如何在 Diagrammer,R 中反转箭头(尾部)?
【发布时间】:2017-12-08 20:58:32
【问题描述】:

让我们创建一个非常简单的图表:

niv <- c("A","B","C","D","E")
from <- c("A","A","A","E","B","C","D")
to <-   c("B","C","D","B","C","A","E")
arr <- c(rep("normal",6), "inv")
temp <- data.table(from=factor(from, levels=niv), 
to=factor(to,levels=niv))
nodes <- create_node_df(n=length(niv), label=niv,
width=0.3) 
edges <- create_edge_df(from = temp$from,
to = temp$to, rel = "leading_to", label=temp$from,
arrowhead=arr, penwidth=3, color="blue")   
graph <- create_graph(nodes_df=nodes,edges_df=edges)
render_graph(graph)

该图显示了从一个节点到另一个节点的边。
通常人们用箭头来画那个边缘,但我想用相反的符号画一些,一个尾巴。

我发现通过使用参数 arrowhead="inv" 我可以将箭头改为尾巴。 (在我的示例中,从 D 到 E 的边有一条尾巴)。

但是有一个问题,尾巴画错了。我想在边缘的开始处画它(箭头)。

我怎样才能改变它?

有一个参数 rel = "leading_to" 但我一直没能找到它还能得到什么其他值。
还有一个参数“dir”,但我也不知道怎么用。

谢谢。

一个额外的问题是:如何防止 Diagrammer 在边缘上方写标签?我希望它们不要重叠。

【问题讨论】:

  • 切换“从”和“到向量”是否可以获得您想要的结果?
  • 这是我想的一个可能的解决方案,但我只需要切换我想要反转的边缘。无论如何,我一直在寻找一些更优雅的解决方案,而不修改原始输入。

标签: r diagrammer


【解决方案1】:

您可以将目录切换到“后退”:

library(DiagrammeR)
library(data.table)
niv <- c("A","B","C","D","E")
from <- c("A","A","A","E","B","C","D")
to <-   c("B","C","D","B","C","A","E")
temp <- data.table(from=factor(from, levels=niv), 
                   to=factor(to,levels=niv))
nodes <- create_node_df(n=length(niv), label=niv,
                        width=0.3) 
edges <- create_edge_df(from = temp$from,
                        to = temp$to, dir = "back", label=temp$from,
                        arrowtail="inv", penwidth=3, color="blue")   
graph <- create_graph(nodes_df=nodes,edges_df=edges)
render_graph(graph)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多