如何使用rCharts,dPlot和dimple更改轴标题

时间:2014-04-05 01:15:46

标签: r rcharts dimple.js

如何更改使用rCharts和dimple.js库生成的绘图的轴标题?例如:

library(rCharts)
data(mtcars)
mtcars.df <- data.frame( car = rownames(mtcars), mtcars )
d1 <- dPlot(x ="disp", y="mpg", groups=c("car", "cyl"), type ="point", data=mtcars.df)
d1$xAxis( type = "addMeasureAxis")
d1

期望的效果是替换变量名称&#34; disp&#34;使用更完整的文本作为轴标题。我尝试在d1 $ xAxis()行中添加参数,例如title =&#34; Displacement&#34;和标签=&#34;位移:但没有成功。

3 个答案:

答案 0 :(得分:3)

抱歉,我刚看到这个。感谢John回答。

使用rCharts,我们可以利用afterScript模板添加它。如果DOM中只有一个图表,我们可以使用John未经修改的示例。

d1$setTemplate(
  afterScript = 
  '
    d3.selectAll(".axis.title")
    .text(function () {
      var t = d3.select(this).text();
      if (t === "disp") {
          return "Displacement";
      } else if (t === "mpg") {
          return "Miles Per Gallon";
      } else {
          return t;
      }
    }); 
  '
)

如果您想在DOM中使用多个图表,或者这对您不起作用,请告诉我。感谢。

答案 1 :(得分:2)

Dimple目前还没有曝光这些游戏,但它会在下一个版本中出现。一旦它发生,我确定rcharts中的凹坑实现背后的伟大人物会将它们添加到库中。我不太确定这是如何使用R实现的,但是如果你可以在渲染图表后运行一些Javascript,你可以使用一些原始d3修改标题:

d3.selectAll(".axis.title")
    .text(function () {
        var t = d3.select(this).text();
        return (t === "disp" ? "Displacement" : t);
    }); 

如果你想扩展它以替换几个标题,你可以用它来完成:

d3.selectAll(".axis.title")
    .text(function () {
        var t = d3.select(this).text();
        if (t === "disp") {
            return "Displacement";
        } else if (t === "mpg") {
            return "Miles Per Gallon";
        } else {
            return t;
        }
    }); 

我希望这会有所帮助。

答案 2 :(得分:2)

这是另一种方式:

# devtools::install_github("rCharts", "ramnathv", ref = "dev")
library(rCharts)
data(mtcars)
mtcars.df <- data.frame( car = rownames(mtcars), mtcars )
d1 <- dPlot(x ="disp", y="mpg", groups=c("car", "cyl"), type ="point", data=mtcars.df)
d1$xAxis( type = "addMeasureAxis")
d1

d1$setTemplate(afterScript = "
  <script>
    myChart.draw()
    myChart.axes[0].titleShape.text('Displacement')
    myChart.axes[1].titleShape.text('Miles Per Gallon')
    myChart.svg.append('text')
        .attr('x', 40)
        .attr('y', 20)
        .text('Plot of Miles Per Gallon / Displacement')
        .style('text-anchor','beginning')
        .style('font-size', '100%')
        .style('font-family','sans-serif')
  </script>               
")
d1

<强>截图:

enter image description here

给Ramnath的帽子提示:R: interactive plots (tooltips): rCharts dimple plot: formatting axis