如何更改使用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;位移:但没有成功。
答案 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
<强>截图:强>
给Ramnath的帽子提示:R: interactive plots (tooltips): rCharts dimple plot: formatting axis