使用R语言officer包在Word文档中居中ggplot图形的问题
解决officer插入ggplot后图形不居中的问题
方法1:继承原合并域的段落格式
你当前的问题是body_add_gg默认插入的图形为左对齐,且移除带居中格式的%graphinsert%后,图形无法继承该格式。可以先获取合并域所在段落的格式,再将其应用到插入的图形上:
# 定位到合并域并获取所在段落的对齐格式 df <- cursor_reach(df, "%graphinsert%") target_para <- cursor_current(df) center_format <- fp_par(text.align = target_para$style$text.align) # 插入图形并应用居中格式 df <- body_add_gg(df, parish_graph, width = 6, height = 5) df <- body_set_paragraph(df, value = center_format) # 移除合并域文本 df <- body_replace_all_text(df, old_value = "%graphinsert%", new_value = "")
方法2:直接指定居中对齐插入图形
如果无需依赖模板原有格式,可直接在插入图形时通过fp_par定义居中格式:
df <- cursor_reach(df, "%graphinsert%") # 创建居中对齐的段落格式 center_align <- fp_par(text.align = "center") # 插入图形时绑定格式 df <- body_add_gg(df, parish_graph, width = 6, height = 5, style = center_align) df <- body_replace_all_text(df, old_value = "%graphinsert%", new_value = "")
方法3:删除原合并域后插入图形(简洁版)
若%graphinsert%位于单独段落中,可直接删除该段落内容后插入居中图形,图形会自动继承原段落的位置属性:
df <- cursor_reach(df, "%graphinsert%") # 删除合并域所在的段落内容 df <- body_remove(df) # 插入居中对齐的图形 df <- body_add_gg(df, parish_graph, width = 6, height = 5, style = fp_par(text.align = "center"))
内容的提问来源于stack exchange,提问作者Erin Smith
相关产品推荐
相关产品推荐

