gpt4 book ai didi

r - 使用 rCharts 为图表中的所有数据点添加唯一链接

转载 作者:行者123 更新时间:2023-12-04 12:29:48 25 4
gpt4 key购买 nike

我正在使用 rCharts 创建一个散点图,显示我随时间计算的评分。我有每个单独的数据点(评级)的更多信息,并且希望图表上的每个数据点链接到一个唯一的页面,其中包含有关该特定数据点的更多信息。

例如:我希望能够将鼠标悬停在图表上的第一个数据点上并单击它以转到提供有关该评级或数据点的更多信息的特定页面 (http://www.example.com/info?id=1)。每个数据点都有一个唯一的 ID 和我想链接到的唯一 URL。

这是我用来生成图表的代码

library(rCharts)
age <- c(1:20)
tall <- seq(0.5, 1.90, length = 20)
name <- paste(letters[1:20], 1:20, sep = "")
df <- data.frame(age = age, tall = tall, name = name)
n1 <- nPlot(age ~ tall ,data = df, type = "scatterChart")
n1$xAxis(axisLabel = "the age")
n1$yAxis(axisLabel = "the tall", width = 50)
n1$chart(tooltipContent = "#! function(key, x, y, e ){
var d = e.series.values[e.pointIndex];
return 'x: ' + x + ' y: ' + y + ' name: ' + d.name
} !#")
n1

最佳答案

目前这绝对应该被视为黑客攻击,但它确实有效。我们在这里面临的问题导致我们需要这个 hack 是 draw标准 rCharts 模板中的函数没有为我们提供为 nvd3 添加代码位的位置,并且 afterScript nvd3 不在我们的 draw 范围内so 在图表呈现之前被调用。此外,nvd3 工具提示只是 html,但在此处提供单击链接的问题是触发了鼠标悬停并且工具提示在我们单击它之前消失了(有趣的技巧但没有用)。因此,在这个 hack 中,我们将劫持工具提示内容函数,以指定一个点击事件函数。

我试图通过评论来表达清楚,但如果这些都没有意义,请告诉我。我当然不会因为支持而从事职业:),所以我还没有建立那种技能。

  library(rCharts)

age <- c(1:20)
tall <- seq(0.5, 1.90, length = 20)
name <- paste(letters[1:20], 1:20, sep = "")

#this next line is not entirely necessary if other data
#provides the part of the link address
#will also comment in the js piece below to show
#how to handle that
links <- paste0("http://example.com/",name)

df <- data.frame(age = age, tall = tall, name = name, links = links)
n1 <- nPlot(age ~ tall ,data = df, type = "scatterChart")
n1$xAxis(axisLabel = "the age")
n1$yAxis(axisLabel = "the tall", width = 50)
n1$chart(tooltipContent = "#! function(key, x, y, e ){
d3.selectAll('[class*=\"nv-path\"]').on('click',function(){
//uncomment debugger if you want to see what you have
//debugger;
window.open(d3.select(this).datum().data['point'][4].links,'_blank');
//as stated in the r code generating this
//the link address might be in the data that we already have
//window.open(
// 'http://example.com/' + d3.select(this).datum().data['point'][4].name,
// '_blank'
//);
})
//looks like the actual point is below the hover tooltip path
//if tooltips disabled we could do click on the actual points
//d3.selectAll('.nv-group circle').on('click',function(){
// debugger;
//})
var d = e.series.values[e.pointIndex];
return 'x: ' + x + ' y: ' + y + ' name: ' + d.name
} !#")

n1

希望对你有帮助。

关于r - 使用 rCharts 为图表中的所有数据点添加唯一链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409466/

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