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

ggplot2分面绘图:调整行顺序并为梯度图添加nabla符号

解决方案

要实现你的需求,需要调整分面标签的内容和顺序,同时让ggplot解析数学表达式来显示nabla符号,具体修改如下:

修改后的代码

p = 3
n0 = 100
z0 = seq(0.01, 0.99, length = n0)
AB0 = matrix(rbeta(600,4,1), nrow = n0)

library(ggplot2)

# 生成带数学表达式的标签,第一组是函数g,第二组是梯度∇g
ab.labels <- c(paste0("g[", 1:p, "]"), paste0("nabla*g[", 1:p, "]"))
# 将ID转换为因子,指定水平顺序确保分面排列符合要求
plot_data <- data.frame(
  ab = c(AB0),
  ID = factor(rep(ab.labels, each = n0), levels = ab.labels),
  Z = z0
)

pl0 <- ggplot(plot_data, aes(x = Z, y = ab)) +
  geom_point() +
  # 使用label_parsed解析数学表达式,同时指定分面行列数
  facet_wrap(~ID, scales = "free", nrow = 2, ncol = p, labeller = label_parsed) +
  theme_bw() +
  ggtitle("Unpenalized VCM", expression("g  and  "~nabla*"g")) +
  ylab("")
print(pl0)

关键修改说明

  • 调整分面顺序:通过factor指定ID的水平优先级,让函数图标签(g[1]-g[3])排在前,梯度图标签(nabla*g[1]-nabla*g[3])在后,确保分面第一行显示函数图,第二行显示梯度图。
  • 渲染nabla符号:使用label_parsed参数让ggplot自动解析标签中的数学表达式,正确显示nabla符号和下标,替代手动输入的g'。
  • 优化标题表述:调整主标题的表达式逻辑,让标题内容与分面展示的内容匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:28:08