【问题标题】:Reverse Axis in rCharts Without Sacrificing Animation?在不牺牲动画的情况下在 rCharts 中反转轴?
【发布时间】:2016-02-20 06:16:54
【问题描述】:

我有一个排名值的数据框,按降序排列。自然地,当这些在 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")

【问题讨论】:

  • 能否提供您正在制作的图表的代码。我相信我已经为您的几个 rCharts 图表提供了解决方案,但是该库包含许多不同类型的图表,我不知道您使用的是哪一种。

标签: r d3.js nvd3.js rcharts


【解决方案1】:

要得到你想要的,你需要三个步骤:

  1. 使用排名负值创建辅助变量
  2. 调整您的工具提示
  3. 调整 yAxis

下面的代码做了这三件事。

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}!#")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多