You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarto中如何实现R生成图表与文本并排且标题对齐?

解决Quarto图书中图表、标题对齐及左侧文本填充问题

要实现图表右对齐、标题同步对齐且左侧填充文本的效果,最直接的方案是利用Quarto的多列布局,同时调整图表内部标题的对齐方式,具体步骤如下:

1. 用Quarto分栏布局实现左右排版

通过Quarto的列容器语法,将页面划分为左右两栏:左侧栏填充说明文本,右侧栏放置图表及对齐的图题。这种方式既能填满左侧空白,又能保证图表与图题完全对齐。

完整示例代码

::: {.columns}
::: {.column width="50%"}
# 左侧文本内容
本直方图展示了样本群体的身高频率分布,数据覆盖59.5-74.5cm的区间范围,其中65.5-68.5cm区间的占比最高,达到42%。你可以在这里添加更多分析说明、数据背景或结论性内容,充分利用左侧的空白空间。
:::
::: {.column width="50%"}
```r, echo=FALSE, fig.cap="Histogram of Height", out.width='100%', fig.asp=1
df <- data.frame(
  ClassInterval = c("59.5-62.5", "62.5-65.5", "65.5-68.5", "68.5-71.5", "71.5-74.5"),
  Frequency = c(5, 18, 42, 27, 8)
)
# 调整绘图边距,避免标题被截断
par(mar = c(4, 4, 2, 1))
with(df, barplot(height = Frequency / sum(Frequency), names.arg = ClassInterval, 
                 space = 0,
                 xlab = "Height",
                 ylab = "Frequency",
                 ylim = c(0, 0.45),
                 cex.names=0.8,
                 col = 'darkblue',
                 density=20))
# 将图表内部标题设置为右对齐,匹配整体布局
title(main = "Histogram of Height", adj = 1)
box(col = 'black')

:::
:::

## 2. 关键调整说明
- **分栏设置**:用`::: {.columns}`创建列容器,每栏宽度设为50%,刚好匹配你原图表的`out.width='50%'`设置。
- **图题对齐**:右侧栏内的图表宽度设为`100%`,Quarto会自动让`fig.cap`图题与图表保持同栏对齐,无需额外设置`fig.align='right'`。
- **图表内部标题对齐**:通过`title(main = "...", adj = 1)`将绘图窗口内的标题设置为右对齐,与整体排版风格统一。
- **边距调整**:用`par(mar = c(4,4,2,1))`调整绘图边距,避免右对齐的标题被截断。

## 备选方案:仅调整图题对齐(无左侧文本)
如果不需要填充左侧文本,只是想让右对齐的图表与图题同步对齐,可通过自定义CSS实现:
在Quarto文档的YAML头部或单独的CSS文件中添加:
```css
.figure.align-right figcaption {
  text-align: right;
}

内容的提问来源于stack exchange,提问作者Saïd Maanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:48:34