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

请求协助在R中绘制符合要求的双二维正态分布等高线图

修正后的二维正态分布等高线图R代码

完整可运行代码

library(ggplot2)
library(mvtnorm)

# 定义分布参数
mu1 <- c(0, 0)
mu2 <- c(2*sqrt(2), 2*sqrt(2))
sigma1 <- matrix(c(2, 0, 0, 2), nrow = 2)  # 修正原代码的.0为0,消除语法歧义
sigma2 <- matrix(c(2, 1.2, 1.2, 2), ncol = 2)

# 生成网格数据
data.grid <- expand.grid(s.1 = seq(-6, 10, length.out = 100), 
                         s.2 = seq(-6, 10, length.out = 100))

# 计算两个分布的概率密度
q.samp1 <- cbind(data.grid, prob = mvtnorm::dmvnorm(data.grid, mean = mu1, sigma = sigma1))
q.samp2 <- cbind(data.grid, prob = mvtnorm::dmvnorm(data.grid, mean = mu2, sigma = sigma2))  # 修正data.grid1笔误

# 绘制等高线图
ggplot() +
  # 第一个分布的等高线
  stat_contour(data = q.samp1, aes(x = s.1, y = s.2, z = prob), 
               color = 'red', bins = 12) +
  # 第二个分布的等高线
  stat_contour(data = q.samp2, aes(x = s.1, y = s.2, z = prob), 
               color = 'green', bins = 12) +
  # 标注第一个分布的均值点
  geom_point(aes(x = mu1[1], y = mu1[2]), color = 'red', size = 3, shape = 19) +
  # 标注第二个分布的均值点
  geom_point(aes(x = mu2[1], y = mu2[2]), color = 'green', size = 3, shape = 19) +
  # 设置坐标轴标签(修正slop拼写错误)
  xlab("Random slope") +
  ylab("Random intercept") +
  # 简洁专业主题
  theme_bw()

关键修正说明

  • 变量名笔误修复:原代码中q.samp2里的data.grid1是错误变量名,改为正确的data.grid
  • 参数冲突解决:移除stat_contour中同时存在的bins和binwidth,避免参数冲突警告,统一用bins控制等高线数量
  • 语法歧义修正:把sigma1中的.0改为0,消除潜在的语法解析问题
  • 均值点优化:给两个均值点设置与对应等高线匹配的颜色,增大尺寸并使用实心圆点,让分布中心更醒目
  • 标签拼写修正:将坐标轴标签"Random slop"修正为正确的"Random slope"
  • 主题优化:添加theme_bw()替换默认主题,让图表更清晰专业

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:23:17