GGplot2 中面板背景的条件格式

2023-12-11

我想知道是否有一种“直接”方式将 ggplot 分面面板中回归线的斜率链接到该面板的背景颜色(即在视觉上将大网格中的正斜率与负斜率分开)。

我了解如何在 GGplots 中添加回归线 - 正如上所解释的那样使用 R 中的 qplot 将回归线添加到facet_grid

如果您之前已将此信息添加到原始数据框中,我还了解如何更改背景 - 如上所述使用facet_grid 有条件地更改面板背景?

但是 - 有没有一种方法可以“在 geom_rect”公式中执行此操作,而不必例如单独运行回归,将它们绑定到原始数​​据帧,然后将其用作 geom_rect() 的变量? geom_rect() 有没有办法使用 stat_smooth() 中的信息?

Wouter

之前问题中简单回归线图的一个很好的例子:

library(ggplot2)
x <- rnorm(100)
y <-  + .7*x + rnorm(100)
f1 <- as.factor(c(rep("A",50),rep("B",50)))
f2 <- as.factor(rep(c(rep("C",25),rep("D",25)),2))
df <- data.frame(cbind(x,y))
df$f1 <- f1
df$f2 <- f2

ggplot(df,aes(x=x,y=y))+geom_point()+facet_grid(f1~f2)+stat_smooth(method="lm",se=FALSE)

这不完全是一个解决方案,而是一个解决方法。但结果似乎不错。您链接到的两篇文章都有解决方案的每个部分。詹姆斯的解决方案在这里告诉您如何从中提取拟合值stat_smooth. 乔兰的解决方案在这里告诉如何使用geom_rect来填充背景。

# generating data: Usage of set.seed for reproducibility 
# also I changed the multiplication constant to 0.1 to have 
# at least one negative slope.

require(ggplot2)
set.seed(12)
x <- rnorm(100)
y <-  + .1*x + rnorm(100)
f1 <- as.factor(c(rep("A",50),rep("B",50)))
f2 <- as.factor(rep(c(rep("C",25),rep("D",25)),2))
df <- data.frame(cbind(x,y))
df$f1 <- f1
df$f2 <- f2

# first generate your plot in this manner and run it
# from James' post, the part outfit=fit<<-..y.. will store 
# the output of fitted values in "fit"

g <- ggplot(df,aes(x=x,y=y)) + geom_point()+facet_grid(f1~f2) 
g <- g + stat_smooth(aes(outfit=fit<<-..y..), method="lm",se=FALSE)
# now run g to generate "fit"
g

# now extract the slope for each facet and 
# construct the data.frame for geom_rect (as per Joran's post)
# Edit: Just to add more info about "fit". By default it contains
# 80 values per facet. Hence the 80*4 = 320

slopes <- fit[seq(2, 320, by = 80)] - fit[seq(1, 320, by = 80)]
tp <- unique(df[, c('f1', 'f2')])
tp <- transform(tp, slopes=slopes, x=1, y=1)
tp$pos_neg <- ifelse(slopes > 0, 1, 0)
tp$pos_neg <- factor(tp$pos_neg)

# now plot again (but with geom_rect)
g <- ggplot(df,aes(x=x,y=y)) 
g <- g + geom_rect(data = tp, aes(fill = pos_neg), xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf, alpha = 0.5) 
g <- g + geom_point() + facet_grid(f1~f2) + stat_smooth(method = "lm",se = FALSE)
g

The output looks like this. I'm not sure if this is what you expect though.. Strictly speaking, you do calculate the fitted values twice, but both times you calculate it implicitly with stat_smooth. Like I said, its just a work-around.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GGplot2 中面板背景的条件格式 的相关文章

  • R 提交到 CRAN:构建包的 R 版本?

    我想向 CRAN 提交一个包裹 在里面CRAN 存储库政策 http cran r project org web packages policies html它指出 当发布新的 R x y 0 版本时 R CMD 检查给出 错误 的包将被
  • 如何从闪亮模块调用闪亮模块?

    如何从闪亮模块中调用闪亮模块并传递第一个模块中的选择 作为一个例子 我编写了一个应用程序来显示星球大战主题dplyr在 DT data 表中 模块StarWars 来自同一数据集的相关电影应显示在另一个子选项卡 模块电影 的另一个 DT d
  • 在字符串中每个字母后面添加数字

    我有几个具有固定格式的字符串 格式为一个字母后跟一个数字 例如 A3B1C7D1 但是 如果字母后面的数字为 1 则字符串将写为 A3BC7D 我想做的是插入数字 1 然后将字符串转换为A3BC7D to A3B1C7D1 我的示例数据是
  • 重用 R 中内置的模型

    在 R 中构建模型时 如何保存模型规范以便可以在新数据上重用它 假设我根据历史数据建立逻辑回归 但直到下个月才会有新的观察结果 最好的方法是什么 我考虑过的事情 保存模型对象并在新会话中加载 我知道某些模型可以使用 PMML 导出 但还没有
  • 如何选择独特点

    我是一名 R 程序员新手 我有以下一系列观点 df lt data frame x c 1 2 3 4 y c 6 3 7 5 df lt df gt mutate k 1 df lt df gt full join df by k df
  • R strsplit 问题(容易解决吗?)

    这应该是一件很容易做到的事情 我在这里读到的类似示例有点复杂 而且这些技术对我来说并不真正有效 我有一个名为 id string 的变量 gt typeof id string 1 character and gt id string 1
  • rpy2 在从 R 到 Python 的数据帧中处理 NA/缺失值时出现问题

    我在使用rpy2包进行转换时遇到问题dataframe将 R 中的内容保存到 Python 中 import os os environ R HOME Library Frameworks R framework Resources imp
  • 在 R 中使用 randomforest() 进行分类?

    我最初有一个由 N 行 12 列组成的数据框 最后一列是我的班级 0 或 1 我必须将整个数据框转换为数字 training lt sapply training temp as numeric 但后来我认为我需要将类列作为因子列来使用 r
  • 如何在 sqlSave() 命令中跳过主键?

    我正在尝试使用 RODBC 在 MySQL 数据库中插入 data frame 我正在使用的命令如下 sqlSave channel dbData tablename table name append TRUE safer TRUE fa
  • rmarkdown 中的内部链接不起作用

    我使用 rmarkdown 来渲染 pdf 文档 现在我想在文本中添加内部链接 在帮助页面中降价 http rmarkdown rstudio com authoring pandoc markdown html links 它说内部链接定
  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • ggplot:按组自动化的百分位线

    我找到了dplyr gt 运算符有助于简单的 ggplot2 转换 无需求助于ggproto 这是必需的ggplot2 扩展 http docs ggplot2 org dev vignettes extending ggplot2 htm
  • 计算级别内的值

    我在 R 中生成了一组级别cut 例如假设 0 到 1 之间的小数值 分为 0 1 个区间 gt frac lt cut c 0 1 breaks 10 gt levels frac 1 0 001 0 1 0 1 0 2 0 2 0 3
  • 反转默认比例梯度ggplot2

    我是新手 我正在尝试设计热图 这是我的代码 ggplot gd aes Qcountry Q6 1 Q6d order TRUE geom tile aes fill prob colour white theme minimal labs
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • Dplyr 多重滞后整齐评估?

    我试图在 dplyr 中使用尽可能少的代码来实现多个滞后 同时坚持整洁的评估 以下标准评估 SE 代码有效 if require dplyr install packages dplyr library dplyr a as tibble
  • 将文本添加到 ggplot 中的轴标签

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x

随机推荐

  • 将word文档插入另一个word文档而不改变格式VBA

    首先 我通过用户窗体上的按钮将 Word 文档 doc1 复制到新的 Word 文档 并采用其格式 其次 我在这个word文档 填充有doc1 的末尾插入一个新的word文档doc2 doc1和doc2有文本和表格以及各种颜色 每次我按下另
  • JSP/HTML 页面到 PDF 的转换 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 如何将 JSP HTML 文件转换为 PDF 我想将网页的特定部分转换为 PDF 文件 是否可以 是的 好好看看展位阿帕奇FOP and iText
  • 如何在 Excel 中查找拼写错误的文本之间的匹配项?

    我有两列数据 其中有一百个名字 我需要找到匹配项 问题是第二列上的名称与第一列上的名称不完全相同 很难用一百个名字来匹配他们 excel中是否有任何公式至少可以给出数据的公差 例如 Setyadi 与 Setiadi 或 Tak Jelan
  • 时间戳/日期作为 cassandra 列族/hector 的关键

    我必须创建并查询一个复合键为 timestamp long 的列族 还 查询时我想触发时间戳范围查询 例如 xxx 和 yyy 之间的时间戳 这可能吗 目前我正在做一些非常有趣的事情 我知道这是不正确的 我为给定范围创建带有时间戳字符串的键
  • Codeigniter simple_query 与查询生成器(插入、更新和删除)

    根据文档 simple query不会返回任何数据库结果集 也不会设置查询计时器 或编译绑定数据 或存储查询以进行调试 正如在我的 CodeIgniter 中一样 我使用 CI 提供的查询生成器来生成查询 那么 这些用于插入 更新和删除的查
  • 从非 UI 线程弹出对话框

    我正在开发一个面向团体的网络应用程序 问题是 当我要加入一个组时 它首先检查该组是否安全 如果是 它会要求输入用户名和密码 获得组安全性可能需要几秒钟 因此我为整个过程生成一个新线程 我想弹出一个对话框 以防该组需要安全性 我认为这可能与后
  • 在 C++ 中处理巨大的多维数组

    我正在用 C 设计一款类似于 Minecraft 的游戏 它在内存中保存了大量的地形数据 一般来说 我想在内存中存储一 个数组 即 5 4 5 50 50 50 这还不错 因为它相当于大约 100mb 的虚拟内存 而我的结构只有大约 8 个
  • 为什么重新分配后变量的类型再次变为“未知”

    Why value属于类型unknown分配后再次string to it TypeScript Playground 中的示例 function example boolean let value unknown something ma
  • 如何更改 WooCommerce 订阅中的价格字符串

    我需要一个更好的方法来做到这一点 目前 我已将代码直接添加到 class wc subscriptions product php 文件中的 get price string 函数中 因此当设置免费试用版时 我可以更改添加到价格字符串中的文
  • 为什么“边框颜色”被“颜色”覆盖?

    我有以下CSS isActiveFilter color black background color rgba 0 184 170 5 padding 15px 10px 10px 10px border color red border
  • 检测 UIPopoverController 何时完成呈现 UIImageViewcontroller

    我将 UIImagePickerController 作为 UIPopoverController 的内容视图控制器 我需要检测弹出窗口何时刚刚完成呈现 刚刚出现 UIPopoverController 没有任何委托 我似乎也找不到检测 U
  • 如何让 Geolocation API 在 Dartium 中工作?

    我正在尝试使用 Geolocation API 在 Dartium 浏览器中进行测试 我特别尝试执行以下操作 window navigator geolocation getCurrentPosition then pos window a
  • python 使用字符串列表创建字典,并将字符串长度作为值

    我确信这是可以做到的 但到目前为止我还没有成功 我有一个字符串列表 我想创建一个字典 其中所述字符串的长度 可以表示为范围 作为键 字符串本身作为值 例子 这是类似我的列表 foo bar help this guy 我想最终得到一本这样的
  • 如何找到 PHP 项目中未使用的函数

    如何找到 PHP 项目中未使用的函数 PHP 中是否有内置的功能或 API 可以让我分析我的代码库 例如反射 token get all 这些 API 的功能是否足够丰富 让我不必依赖第三方工具来执行此类分析 您可以尝试 Sebastian
  • C# 列格式设置

    我正在尝试将一些输出格式化到控制台 但解决方案存在一些问题 我在 C 中执行此操作 但每次调用 Console Write 时 它 都会将整个内容打印到控制台的最后 然后开始一个新行 所以我想做的是将其调整为四列 然后在那里开始一个新行 以
  • 返回指针后删除堆

    我有一个如下的功能 int readFile string InputPath int myvar new int 10 The file has 10 lines Using heap ifstream inFile inFile ope
  • 带有参数的 Facebook 帖子

    我需要在 Facebook 上发布带有参数的帖子 我使用了这里的解决方案 动态生成 Facebook Open Graph 元标签和这里 WordPress PHP 中的动态 Facebook 和元标签 最终工作代码
  • 使用 WatiN 进行自动完成下拉菜单测试

    我正在使用 WatiN 来测试自动完成下拉列表 当用户在输入 3 个字符后在字段中键入时 将触发 jquery 自动完成并显示无序列表 用户必须从列表中进行选择 我无法使用 WatiN 从列表中进行选择 触发自动完成 以下是开发人员使用的一
  • ASP.NET Ajax 客户端框架无法加载。当将 ScriptManager 放在空白页上时

    我有一个错误Microsoft JScript 运行时错误 ASP NET Ajax 客户端框架无法加载 使用母版页在空白页上
  • GGplot2 中面板背景的条件格式

    我想知道是否有一种 直接 方式将 ggplot 分面面板中回归线的斜率链接到该面板的背景颜色 即在视觉上将大网格中的正斜率与负斜率分开 我了解如何在 GGplots 中添加回归线 正如上所解释的那样使用 R 中的 qplot 将回归线添加到