【问题标题】:rPlot tooltip problemsrPlot 工具提示问题
【发布时间】:2014-01-05 02:05:52
【问题描述】:

我有一个简单的例子,使用带有 rCharts 的工具提示似乎不起作用:

set.seed(1)
test <- data.frame(x = rnorm(100), y = rnorm(100))
rPlot(y ~ x, data = test, 
      type = 'point',
      tooltip = "function(item){return item.x + '\n' + item.name + '\n' + item.y}") 

出现一个空白页面。如果我删除工具提示选项,情节就在那里。我正在使用 rCharts_0.4.1,R 在 x86_64-apple-darwin10.8.0(64 位)和 Chrome 版本 31.0.1650.63 上开发中。

额外问题! 工具提示是否可以包含数据集中但未在xy 等中使用的变量?我有一个大型数据集,我想用一个每行具有唯一值的 ID 变量来注释数据点。

谢谢,

最大

【问题讨论】:

  • 我在 Windows x64 上与 rCharts_0.4.2 有同样的可重现问题
  • 我想在这里产生更多的声誉,你能告诉我我的回答有什么问题吗?

标签: r rcharts


【解决方案1】:

图表 0.4.2

我不能指出我以前在哪里见过这个,但我能提供的最好的就是当前指令是像这样包装你的 js 函数:

"#!function(item) { return item.x }!#"

set.seed(1)
test <- data.frame(x = rnorm(100), y = rnorm(100), id = 1:100)
p <- rPlot(y ~ x, data = test, 
        type = 'point',
        tooltip = "#!function(item){ return 'x: ' + item.x + 
        ' y: ' + item.y + ' id: ' + item.id }!#")

我永远无法获得不同行的提示。您可以通过键入p$show('inline') 来查看问题,并在创建工具提示时在您想要的位置添加换行符。 Mustache 正在转换换行符,这意味着它们在生成的 JS 函数中消失并导致工具提示函数跨越多行 - 导致错误。我试图转义换行符并将每个包含换行符的字符串附加到.replace('\\n', '\n'),但这显然会导致同样的问题。

目前,最好的办法是制作此处所示的绘图,输入p$save('filepath.html') 并手动添加换行符。否则,问题是如何将文字换行符传递给 mustache。

【讨论】:

    【解决方案2】:

    您的代码使用rCharts 0.3.51(Chrome 31.0.1650.63 m,Win7 x64)工作/工作:

    set.seed(1)
    require(rCharts)
    test <- data.frame(x = rnorm(100), y = rnorm(100), 
                       name=replicate(100, paste(sample(letters, 5, rep=T), collapse="")))
    rPlot(y ~ x, data = test, 
          type = 'point',
          tooltip = "function(item){return item.x + '\n' + item.name + '\n' + item.y}")
    

    您应该能够引用test 中的所有列——就像我对name 所做的那样。

    【讨论】:

    • 我的代码也有同样的问题。我还尝试在 Safari 中打开页面,但没有任何改进。我会找一台Windows机器来测试。重新定义的工具提示是否有任何已知的操作系统差异?谢谢 - 马克斯
    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多