R中的r2d3:如何在同一行上并排显示两个图表?
P粉543344381
2023-09-03 16:23:03
<p>使用r2d3包,我可以在RMarkdown中渲染一个简单的d3.js图表,像这样:</p>
<p><strong>barchart.js</strong>:</p>
<pre class="brush:php;toolbar:false;">// !preview r2d3 data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20)
var barHeight = Math.floor(height / data.length);
svg
.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("width", function (d) {
return d * width;
})
.attr("height", barHeight)
.attr("y", function (d, i) {
return i * barHeight;
})
.attr("fill", "steelblue");</pre>
<p><strong>RMarkdown</strong>:</p>
<pre class="brush:php;toolbar:false;">{r out.width='100%', fig.height=4}
library(r2d3)
r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js")</pre>
<p>但是,假设我想要在RMarkdown中同时绘制相同的图表(即两个图表并排)。有办法做到这一点吗?使用简单的RMarkdown很容易,因为你可以保存图形然后在网格中排列。但是r2d3有办法做到这一点吗?它不会将每个图形保存为可以在网格中排列的对象。</p>
我猜有多种方法可以做到这一点。一种选择是使用在
crosstalk
包中实现的Bootstrap Columns:顺便说一句 - bscols对于安排任何交互式的html小部件也非常有用,并且可以解决大多数情况下无法轻松安排“正常”Rmd输出的问题。