【问题标题】:How to build an Organization Chart with highcharter [duplicate]如何使用 highcharter 构建组织结构图 [重复]
【发布时间】:2020-02-20 17:27:32
【问题描述】:

我想使用highcharter(或者,可选地,使用另一个 R highchart 绘图库)绘制组织结构图。我知道已经有一些关于该主题的问题,但它们似乎已经过时,因为 highchart 现在提供了organization chart 的可能性。

编辑: 由于 raf18seb 的回复(非常感谢您的见解),我尝试下载 github 版本并运行一些反映 sankey 逻辑的代码。但是,没有渲染任何情节:

devtools::install_github("jbkunst/highcharter")
library(highcharter)

highchart() %>%
  hc_chart(type = 'organization') %>%
  hc_add_series(
    data = list(
      list(from = 'Brazil', to = 'Portugal'),
      list(from = 'Brazil', to = 'Spain'),
      list(from = 'Poland', to = 'England'))
  )

【问题讨论】:

    标签: r highcharts r-highcharter


    【解决方案1】:

    组织系列从 v7.1.0 开始添加到 Highcharts,但 Highcharter 使用 v7.0.1。

    Highcharter 更新后,您应该可以使用以下语法使用组织结构图:

    组织系列继承自 Sankey。

    这个 R 代码适用于 Sankey:

    library(highcharter)
    
    highchart() %>%
      hc_chart(type = 'sankey') %>%
      hc_add_series(
        data = list(
          list(from = 'Brazil', to = 'Portugal', weight = 5),
          list(from = 'Brazil', to = 'Spain', weight = 2),
          list(from = 'Poland', to = 'England', weight = 2))
      )
    

    所以您需要做的就是将 type: 'sankey' 更改为 type: 'organization'

    在 JS 中测试:https://jsfiddle.net/BlackLabel/q8x06jga

    当然,你不需要weight值。

    【讨论】:

    • 我检查了github version,在我看来他们更新了 highcharter 以使用 v7.2.0。从 github 安装 dev 版本后,它可以使用,不是吗?但是,我仍然对语法一无所知。使用上面的代码只会产生错误“应将 quosure 环境显式提供为 env”,这似乎与 highcharter 无关。
    • 不幸的是,没有渲染任何情节。我用我使用的代码更新了我的问题。
    • 我在 Highcharter repo 上创建了一张票:github.com/jbkunst/highcharter/issues/567 如果我得到任何反馈,我会告诉你。上面的票你也可以关注
    • 谢谢!我打算去同样的:)
    • 这个问题已经在开发分支上解决了,我自己发布了一个答案。感谢您的努力!
    【解决方案2】:

    感谢@raf18seb 的feature request,目前我们可以构建如下组织结构图:

    devtools::install_github("jbkunst/highcharter", ref = "720")
    library(highcharter)
    
    highchart() %>%
      hc_chart(type = 'organization') %>%
      hc_add_series(
        data = list(
          list(from = 'Brazil', to = 'Portugal'),
          list(from = 'Brazil', to = 'Spain'),
          list(from = 'Poland', to = 'England'))
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-09
      • 2020-01-02
      • 2016-06-15
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      相关资源
      最近更新 更多