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

如何为quilt.plot添加图标题及图例标题?

解决quilt.plot添加标题和图例标题的问题

嘿,我看你在给quilt.plot调整标题和图例的时候踩坑啦~核心问题是quilt.plot是fields包的基础绘图函数,不属于ggplot2体系,所以不能用ggplot的+ theme()语法来改样式,得用基础绘图系统的参数或者fields包自带的参数来设置。咱一步步来修正:

1. 先修正核心错误:替换ggplot语法为基础绘图参数

你原来的代码里用了title参数(还多了个逗号),以及+ theme(),这都是ggplot的写法,quilt.plot不认。咱换成它支持的参数:

修正后的完整代码

library(fields)

# 绘制quilt图并设置标题、图例标题
quilt.plot(
  x = depositionStats_y$xbins, 
  y = depositionStats_y$ybins, 
  z = depositionStats_y$n, 
  nx = 100, 
  ny = 100,
  xlim = c(-10, 100), 
  ylim = c(-80, 80),
  FUN = function(x) sum(x), 
  xlab = "Horizontal distance downwind of source (m)",
  ylab = "lateral distance (m)",  # 去掉原来多余的逗号
  main = "Deposited/remaining pestecides mass fraction",  # 用main设置主标题
  # 设置图例的标题和样式
  legend.args = list(
    text = "Number of Particles",  # 这里替换成你需要的图例标题
    cex = 1, 
    col = "black"
  ),
  # 可选:调整图例大小
  legend.shrink = 0.8
)

# 如果你需要更精细的标题样式(比如居中斜体),用基础绘图的title函数补设置
title(
  main = "Deposited/remaining pestecides mass fraction", 
  adj = 0.5,  # 让标题居中
  col.main = "black", 
  cex.main = 12, 
  font.main = 3  # font=3对应斜体样式
)

2. 把图例放到底部的额外设置

如果你坚持要把图例放到底部(像你原来代码里的legend.position = "bottom"需求),可以拆分绘图步骤:先画quilt图,再单独添加底部的水平图例:

library(fields)

# 第一步:绘制quilt图,暂时不显示图例
par(mar = c(8, 4, 4, 2))  # 调整底部边距,给图例留空间
quilt.plot(
  x = depositionStats_y$xbins, 
  y = depositionStats_y$ybins, 
  z = depositionStats_y$n, 
  nx = 100, 
  ny = 100,
  xlim = c(-10, 100), 
  ylim = c(-80, 80),
  FUN = function(x) sum(x), 
  xlab = "Horizontal distance downwind of source (m)",
  ylab = "lateral distance (m)",
  main = "Deposited/remaining pestecides mass fraction",
  legend.only = FALSE  # 不单独画图例
)

# 第二步:添加底部的水平图例
image.plot(
  z = depositionStats_y$n,
  legend.only = TRUE,
  horizontal = TRUE,  # 设置为水平图例
  legend.args = list(
    text = "Number of Particles", 
    side = 1,  # 图例放在底部(side=1对应底部)
    line = 2.5  # 调整图例与x轴的距离
  ),
  legend.shrink = 0.8
)

关键知识点总结

  • 别搞混绘图体系:quilt.plot属于基础绘图系统,和ggplot2的语法完全不兼容,不能用+和theme()。
  • 标题设置:用quilt.plot的main参数快速加标题,或者用title()函数做精细化样式调整。
  • 图例标题:靠legend.args参数设置,想调整图例位置的话,结合image.plot单独绘制图例更灵活。

内容的提问来源于stack exchange,提问作者Meriem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 06:47:37