добавить и разместить текст в sankeyNetwork с помощью htmlwidgets - PullRequest
1 голос
/ 10 апреля 2020

Я изо всех сил пытаюсь изменить виджет html, созданный с помощью функции sankeyNetwork.

Скажем, что SD является выходом функции SankeyDiagram(), так что dput(SD) возвращает значения здесь . colorJS - это следующий вектор:

> colorJS
[1] "d3.scaleOrdinal([\" #1f77b4\", \"#aec7e8\", \"#ff7f0e\", \"#ffbb78\", \"#008800\", \"#ff9900\", \"#aaaaaa\", \"#ffcc33\", \"#548235\", \"#00CC00\", \"#203864\", \"#315597\", \"##5A82CA\", \"#3399ff\", \"#33ccff\", \"#999999\", \"#9467bd\", \"#c5b0d5\", \"#8c564b\", \"#c49c94\", \"#e377c2\", \"#f7b6d2\", \"#7f7f7f\", \"#c7c7c7\", \"#bcbd22\", \"#dbdb8d\", \"#17becf\", \"#9edae5\", \"#1f77b4\", \"#aec7e8\", \"#ff7f0e\", \"#ffbb78\", \"#008800 \"])"

для создания sankeyNetwork я делаю следующее:

sankey <- sankeyNetwork(SD$links,SD$nodes,Source = 'source', Target = 'target', Value = 'value', 
NodeID = 'name', sinksRight = FALSE, fontSize = 21, fontFamily = "Verdana", LinkGroup = 'group', NodeGroup = 'group', colourScale =colorJS, nodeWidth = 20, nodePadding = 20 ,                            iterations=0 , margin = list(top=-250, right=-700, left=-400, bottom=150))

    # add title and text   
    sankey <- htmlwidgets::prependContent(sankey, htmltools::tags$h1(paste0('Country Group: ', country,';  Year: ',sYear0[y] )))
    sankey <- htmlwidgets::prependContent(sankey, htmltools::tags$h2('Gases', 'Sectors', 'Stages', 'Categories') )   

Я бы хотел добиться того, чтобы содержимое в виджете (Газы, Секторы , Этапы, CAtegoroes), чтобы быть выровненным по вертикали с этапами диаграмм, как на рисунке sankey diagram, как какая-то ось X.

Может ли это быть достигнуто с помощью htmlwidgets (или любого другого трюка)? большое спасибо за вашу помощь

1 Ответ

0 голосов
/ 15 апреля 2020

Я решил это с помощью:

htmlwidgets::prependContent(sankey, htmltools::includeMarkdown("group.txt"))

, где 'group.txt' содержит строку &nbsp;, повторенную несколько раз для создания пробелов.

Не элегантное решение, но делает работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...