gpt4 book ai didi

SunburstR 图的 Javascript 排序

转载 作者:行者123 更新时间:2023-11-30 20:30:42 27 4
gpt4 key购买 nike

我最近将我的 R 中的 SunburstR 包更新到 2.0 版本,突然切片的排序(按大小、降序、顺时针)不再像以前那样自动发生。周围有没有 R & JS/d3.js 专家帮我实现一个自定义的 JS sortFunction 或者说如何解决这个问题?出于复制目的:

library(jsonlite)
library(sunburstR)
b = read.csv(
file = paste0(
"https://gist.githubusercontent.com/rileycrane/",
"92a2c36eb932b4f99e51/raw/",
"a0212b4ca8043af47ec82369aa5f023530279aa3/visit-sequences.csv"
),header=FALSE
,stringsAsFactors = FALSE
)

sequence_json <- jsonlite::fromJSON(
system.file("examples/visit-sequences.json",package="sunburstR"),
simplifyDataFrame = FALSE
)
sunburst(sequence_json)

sunburst 函数提供了一个 sortFunction 参数,可以在其中编写自定义 JS,例如:

sunburst(df,
# create a trivial sort function
sortFunction = htmlwidgets::JS('function(x) {return x;}'))

谢谢!

PS结果: Not sorted

过去的样子(注意切片的顺序):

Sunburst in ealier versions

最佳答案

也许这个example按字母顺序排序会有所帮助。

作为另一个例子,这里是我们如何将每个节点从最大到最小计数排序。

library(sunburstR)

sequence_json <- jsonlite::fromJSON(
system.file("examples/visit-sequences.json",package="sunburstR"),
simplifyDataFrame = FALSE
)

sunburst(
sequence_json,
sortFunction = htmlwidgets::JS(
"
function(a,b) {
// sort by count descending
// unlike the other example using data.name, value is at the top level of the object
return b.value - a.value
}
"
)
)

大多数属性将以 .data 为前缀。

screenshot of json data

screenshot of node data

在 sortFunction 中设置一个 debugger 并在 Chrome 和 Firefox 中使用开发人员工具打开小部件以查看您正在使用的内容可能会有所帮助。

关于SunburstR 图的 Javascript 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50365358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com