【问题标题】:iGraph vertical layout instead of horizontaliGraph 垂直布局而不是水平布局
【发布时间】:2019-08-03 09:09:32
【问题描述】:

我正在使用以下代码在 python 中绘制一棵树:https://plot.ly/python/tree-plots/#set-up-tree-with-igraph

这会创建一个可视化的树,如下所示:

但是,我希望树以垂直布局呈现,如下所示:

当然每个节点上的数字也应该轮换。

这可以使用 igraph 和 plot.ly 吗?

【问题讨论】:

    标签: python plotly igraph


    【解决方案1】:

    是的,实际上很简单,只需将您传递给 xy 的所有值交换,例如在第一个跟踪中而不是:

    fig.add_trace(go.Scatter(x=Xe,
                       y=Ye,
                       mode='lines',
                       line=dict(color='rgb(210,210,210)', width=1),
                       hoverinfo='none'
                       ))
    

    交换 xy 使其看起来像这样:

    fig.add_trace(go.Scatter(y=Xe,
                       x=Ye,
                       mode='lines',
                       line=dict(color='rgb(210,210,210)', width=1),
                       hoverinfo='none'
                       ))
    

    然后在设置了xy 的任何位置(包括注释中)执行相同的操作。

    【讨论】:

    • 非常感谢!有没有办法在给定树的情况下获得正确的定位。在这种情况下,他们对位置进行了硬编码,但有没有办法优化位置?
    • 我不确定我是否理解,但我认为这需要创建一个单独的 SO 问题 :)
    • 是的,完全正确。它基本上是一个动态布局,实际上很棘手。