在R中使用r2d3:如何实现两张图表并排显示?
在RMarkdown中并排显示r2d3图表的方法
可以通过HTML弹性布局(Flex)直接控制r2d3图表的排列,具体实现步骤如下:
1. 保留原有的barchart.js脚本
确保你的barchart.js文件内容不变:
// !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");
2. 在RMarkdown中用Flex容器包裹r2d3代码块
直接在RMarkdown里添加HTML容器,将两个r2d3渲染代码分别放在占比接近一半的子容器中:
library(r2d3)
<div style="display: flex; gap: 15px; margin-bottom: 20px;"> <div style="width: 49%;">
r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js")
</div> <div style="width: 49%;">
r2d3(data=c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20), script = "barchart.js")
</div> </div>
核心说明
display: flex将父容器设置为弹性布局,子元素自动横向排列- 子容器设置
width: 49%,预留间隙避免图表拥挤 out.width='100%'让r2d3图表填满所在子容器,保证布局自适应
如果需要批量处理多组并排图表,也可以定义CSS类统一管理样式,减少内联代码重复。
内容的提问来源于stack exchange,提问作者DiamondJoe12
相关产品推荐
相关产品推荐

