ggraph的定制图例

2023-12-28

我想创建一个自定义图例。示例图例如下所示

这是我的情节

我使用 ggraph 创建了这个图。在这个情节下或在情节附近的某个地方我想要有我上面提到的图例? 有任何想法吗


从技术上讲,您要求使用另一个图作为图例。因此,我们需要安排一个网格并将该图(满足您对图例的要求)放在原始图旁边。见下文;

### packages
library(ggraph)
library(tidygraph)
library(cowplot)
library(gridExtra)

### data
df <- data.frame(
  "A" = c("N","N"),
  "B" = c("I","S"),
  "v" = c(0.25, 0) )

### plot
df %>%
  as_tbl_graph() %>%
  activate(edges) %>%
  tidygraph::filter(v > 0) %>%
  activate(nodes) %>%
  ggraph(layout = 'matrix') +
  geom_node_text(aes(label = name), size = 8,
                 nudge_x = c(0.2, 0, -0.2, -0.2, 0),
                 nudge_y = c(0.3, 0.3, 0.3, -0.3, -0.3)) +
  geom_edge_link2(aes(width = after_stat(index)), color = "red",
                  alpha = 0.5) +
  geom_node_point(size = 20) +
  scale_edge_width(range = c(0, 15), guide = 'none') +
  coord_cartesian(xlim = c(1, 3.5), ylim = c(1, 3.5)) +
  theme_void() -> p_gp
### legend
data.frame(lg1 = "Y", lg2 = "X" , P = 0.5) %>% 
  as_tbl_graph() %>%
  activate(edges) %>%
  tidygraph::filter(P > 0) %>%
  activate(nodes) %>%
  ggraph(layout = 'circle') +
  geom_node_text(aes(label = name), size = 4,
                 nudge_y = c(-0.15, -0.15, -0.15, -0.15, -0.15)) +
  geom_edge_link2(aes(width = after_stat(index)), color = "grey",
                  alpha = 0.5) +
  geom_node_point(size = 10) +
  scale_edge_width(range = c(0, 5), guide = 'none') +
  coord_cartesian(xlim = c(-1.5, 1.5), ylim = c(-1.5, 1.5)) +
  theme_void() -> p_lg

ggdraw(p_lg) +
  draw_label("Significance", y = 0.66, size = 14) +
  draw_label("X significantly", y = 0.62, size = 10) +
  draw_label("exceeds Y", y = 0.58, size = 10) +
  draw_label("(p < 0.05)",  y = 0.54, size = 10) -> p_lg
### grid
grid.arrange(p_gp, p_lg,
             ncol=2, nrow=1, widths=c(9/10,1/10))

Created on 2023-07-04 with reprex v2.0.2 https://reprex.tidyverse.org

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

ggraph的定制图例 的相关文章

  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • R 的 ggplot2 有 Python API 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的问题就像标题一样简单 我想使用R s ggplot2但我所有的数据处理都是在Python 有没有Py
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • 如何在将两根柱子保持在一起的同时熔化柱子?

    我有这种宽格式的数据 我想将其转换为长格式 Cond Construct Line Plant Tube shoot weight shoot Tube root weight root 1 Standard NA NA 2 199 95
  • 条件字体颜色 R Markdown

    我无法找到一种方法来根据变量的值 gt 0 0 或 r setup include FALSE x lt 4 This is an R Markdown document r if x gt 0 textcolor red Markdown
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 麦当劳 omega:R 中的警告

    我正在计算几种不同尺度的欧米茄 并在 R 中使用不同的 omega 函数获取不同比例的不同警告消息 我的问题是如何解释这些警告以及报告检索到的 omega 统计数据是否安全 当我使用 从 alpha 到 omega 内部一致性估计普遍问题的
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • 从 Netbeans 启动 Tomcat 失败

    我从 Netbeans IDE 7 4 启动 Apache Tomcat 6 时遇到问题 在 7 3 版本上我也遇到了同样的问题 其他人提到这个问题也存在于其他版本中 例如 8 0 等 我做了什么 删除已安装的Tomcat 7 不删除它 我
  • 是否有宏可以有条件地将行复制到另一个工作表?

    在 Excel 2003 中是否有宏或方法可以有条件地将行从一个工作表复制到另一个工作表 我通过 Web 查询将 SharePoint 中的数据列表提取到 Excel 中的空白工作表中 然后我想将特定月份的行复制到特定工作表 例如 将 Sh
  • 批处理脚本不运行,尽管其代码在 CMD 中运行

    我正在寻找一种简单的方法来获取以 GB 为单位的系统卷信息 批量 所以我得到了这个 for f tokens 1 3 a in WMIC LOGICALDISK GET FreeSpace Name Size FINDSTR I V Nam
  • 我应该将 useSelector 传递给 useState

    大家好 我有一个关于您喜欢哪种方法的问题 在使用 TypeScript 的 React 功能组件中 使用 useSelector 从 Redux State 获取值是 1 const campaign useSelector campaig
  • 无法将 DispatcherServlet 映射到上下文根

    这是我用于 spring mvc 的当前配置 1 web xml
  • 我的 C 程序读取一个文本文件。当我将它放入 Xcode 时,它​​失败了。发生了什么?

    我有一个打开 txt 的函数 使用 fscanf 读取格式如下的数字 532 2 234 32 当我使用 GCC 编译时它成功地做到了这一点 但我无法在 Xcode 中打开文件 为什么 相关代码是 int main void FILE in
  • 如何禁用 WinForms DataGrid 中的按钮单元格?

    我有一个 WinForms 应用程序 其中包含一个 DataGridView 控件和一列 DataGridViewButtonCell 单元格 当我单击其中一个按钮时 它会启动一项后台任务 我想禁用这些按钮 直到该任务完成 我可以禁用 Da
  • Gekko 长期性能

    在下面的代码中 全年 PV 斜率优化 每小时时间步长 CSV 数据下载link https drive google com file d 172HaD87t9V PDElMER4MwDaWyuCZ3KA5 view usp sharing
  • 如何在使用rescue_from时使用Rails4和RSpec测试渲染状态:404

    我有一个带有 PagesController 的 Rails4 应用程序 当找不到页面时 show method 会抛出自定义异常 PageNotFoundError 在我定义的控制器之上rescue from PageNotFoundEr
  • 转换输出中不需要的字符编码转换

    我这里有一个情况 JAVA版本1 6 Linux RH 5 6 Tikanga Windows 7 Cygwin最新版本 等级 1 6 在一台机器 Linux 上 当我运行 Gradle 构建时 我得到生成的 xsl 文件 这些文件与我运行
  • iOS:Objective-C 中的事件监听器相当于什么?

    在我的一些学习中 我看到有人提到 在视图控制器中 您可以拥有一个模型 并在模型上有某种监听器来监听其中的变化 我认为我没有使用正确的名称 这可能就是为什么我的搜索没有找到任何结果的原因 本质上 我想将服务器调用从控制器移到我的模型中 但我需
  • 使用 Netty 的多线程 UDP 服务器

    我正在尝试使用 Netty 实现 UDP 服务器 这个想法是只绑定一次 因此只创建一个Channel This Channel仅使用一个处理程序进行初始化 该处理程序通过一个线程在多个线程之间分派传入数据报的处理ExecutorServic
  • Google Drive API 使用浏览器版本创建空的“无标题”文件

    我正在尝试使用 Google Drive API 的 浏览器 版本 它似乎主要遵循 Nodejs 语法 但除了浏览器的第一个 hello world 示例之外 似乎没有太多示例 现在我正在尝试创建一个文件夹 然后在该文件夹内创建一个简单的
  • 当任务计划程序启动时隐藏 C# 控制台应用程序窗口

    我已经在谷歌上搜索了这个并阅读了一些资源 但我无法找到一个好的答案 有谁知道如何防止控制台应用程序窗口在任务计划程序启动时打开 Ref 改变output type to Windows application会解决你的问题 转到 项目 gt
  • 从 XAML 中的 *.resx 文件获取值

    是否可以将资源文件中的某些值直接添加到 XAML 标记中 或者为了本地化 我们总是必须在 cs 文件中制作类似的内容 txtMessage Text Messages WarningUserMessage Where Messages是资源
  • Python、Pandas:使用 GroupBy.groups 描述将其应用于另一个分组

    让我们考虑一个 DataFrame 它在 2010 年 1 月的每一天包含 1 行 2 个值 date range pd date range dt 2010 1 1 dt 2010 1 31 freq 1D df pd DataFrame
  • 如何从 DQL 查询返回对象?

    我在原则 2 中编写了一个 DQL 查询 qb gt select r position gt from Entities Races r gt where qb gt expr gt eq r entrantId entrant id g
  • 如何使用 GraphicsPath 绘制形状来创建自定义控件的区域?

    我目前正在尝试覆盖OnPaint 我正在构建的自定义控件的方法 该对象只是一个简单的面板 但我试图让它看起来不同类型的方式 如下所示 我正在使用 GraphicsPath 来帮助我尝试完成此任务 但它的外观 行为并不像我预期的那样工作 因为
  • Node.js Mongoose.js 字符串到 ObjectId 函数

    是否有一个函数可以使用 mongoose 将字符串转换为节点中的 objectId 架构指定某物是一个 ObjectId 但是当它从字符串保存时 mongo 告诉我它仍然只是一个字符串 例如 对象的 id 显示为objectId blah
  • ggraph的定制图例

    我想创建一个自定义图例 示例图例如下所示 这是我的情节 我使用 ggraph 创建了这个图 在这个情节下或在情节附近的某个地方我想要有我上面提到的图例 有任何想法吗 从技术上讲 您要求使用另一个图作为图例 因此 我们需要安排一个网格并将该图