我有以下问题;我正在使用NVD3周围的rCharts包装器来生成简单的折线图。我希望修改默认的tootip行为。使用NVD3库,我可以使用以下代码来完成此操作;

.tooltipContent(function(key,x ,y,e,graph){
    var idx = x.replace("s","")

    var thumbPath = 'snap_' + idx + '.png'
    return '<h3>' + key + '</h3>' +
    '<p>' +  y + ' at ' + x + '</p>' +
    '<img src="'+ thumbPath+ '" alt="some_text">'
  })


这显示了x标签的不同值的不同缩略图。我的问题如下:是否可以使用rCharts来实现上述功能,还是必须修改源代码?

最佳答案

这是有关如何在rCharts中为NVD3指定工具提示的最小示例。您要从R传递的所有JS文字(包括JS函数)都必须包装在#!!#标记之间,以便R知道在转换为JSON期间不将其转换为字符串。图表输出可以在这里http://rcharts.io/viewer/?5948336

require(rCharts)
n1 <- nPlot(mpg ~ wt, group = 'gear', data = mtcars, type = 'scatterChart')
n1$chart(tooltipContent = "#! function(key, x, y){
  return 'x: ' + x + '  y: ' + y
} !#")


通常,任何图表方法chart.x(y)都会在rCharts中转换为n1$chart(x = y),并且在需要时用标签修饰y

希望这可以帮助。

10-04 15:20