rCharts中的反向轴没有牺牲动画?

时间:2016-02-20 06:16:55

标签: r d3.js nvd3.js rcharts

我有一个排名值的数据框,按降序排列。当然,当这些在rCharts中沿Y轴绘制时,低实际值(1,2,3 ......)位于轴的底部并从那里向上移动。因为我列出了排名值,我希望序列可以反转:不是从低(轴的底部)到高(顶部),我希望从高处(轴的底部)前进)低(上)。

我可以使用以下内容完成此操作:

rankPlot$chart( yDomain = c(35,1) )

问题是,这会手动修复Y轴值,这意味着当删除或添加某些值时,如果Y轴未固定,轴将不再动态调整自身。

所以问题是:是否有一种简单的方法来反转轴上的值,而不需要手动修复它们?

更新:这是我用于渲染图表的代码:

> rankPlot <- nPlot(
+     Rank ~ Date, 
+     data = lang.rank.hist.m, 
+     group = "Language",
+     type = "lineChart")

1 个答案:

答案 0 :(得分:1)

要获得你想要的东西,你需要三个步骤:

  1. 使用等级的负值
  2. 创建辅助变量
  3. 调整工具提示
  4. 调整yAxis
  5. 下面的代码完成了这三件事。

    library(rCharts)
    
    lang.rank.hist.m=data.frame(Date=rep(1:4,2),Rank=1:8,Language=c(rep("A",4),rep("B",4)))
    
    # create an auxiliar variable with the inverse order
    lang.rank.hist.m$neg.rank=-lang.rank.hist.m$Rank
    
    rankPlot <- nPlot(
      neg.rank ~ Date, 
         group = "Language",
          data = lang.rank.hist.m, 
             type = "lineChart")
    
    # rewrite the tooltip
    rankPlot$chart(tooltipContent = "#! function(key, val, e, graph){
    return '<h3>' + '<font color=blue>'+ key +'</font>'+ '</h3>' + '<p>'+ val +
                   '</p>' + '<p>'+  graph.point.Rank } !#")
    
    # adapt the yaxis
    rankPlot$yAxis(tickFormat = "#!function (x) {    
    return -x}!#")