r - 在 R markdown 中截断的 iGraph 数字
问题描述
我有一些代码可以为以下最小生成树“cell_dtree”生成布局:
> cell_dtree
IGRAPH 951dfd5 D--- 720 719 --
+ edges from 951dfd5:
[1] 400-> 1 1-> 2 38-> 3 3-> 4 197-> 5 10-> 6 10-> 7 13-> 8 1-> 9 28-> 10 225-> 11 362-> 12 30-> 13
[14] 20-> 14 148-> 15 3-> 16 13-> 17 160-> 18 435-> 19 1-> 20 60-> 21 38-> 22 9-> 23 68-> 24 9-> 25 178-> 26
[27] 21-> 27 1-> 28 60-> 29 2-> 30 1-> 31 2-> 32 1-> 33 352-> 34 21-> 35 20-> 36 1-> 37 1-> 38 554-> 39
[40] 3-> 40 554-> 41 333-> 42 352-> 43 126-> 44 1-> 45 69-> 46 227-> 47 160-> 48 1-> 49 1-> 50 37-> 51 708-> 52
[53] 705-> 53 185-> 54 307-> 55 48-> 56 667-> 57 563-> 58 428-> 59 519-> 60 428-> 61 707-> 62 1-> 63 707-> 64 707-> 65
[66] 707-> 66 214-> 67 20-> 68 68-> 69 37-> 70 453-> 71 57-> 72 148-> 73 345-> 74 69-> 75 148-> 76 80-> 77 79-> 78
[79] 9-> 79 70-> 80 68-> 81 148-> 82 23-> 83 345-> 84 454-> 85 345-> 86 36-> 87 345-> 88 36-> 89 311-> 90 148-> 91
[92] 13-> 92 345-> 93 13-> 94 350-> 95 326-> 96 79-> 97 666-> 98 539-> 99 430->100 554->101 213->102 20->103 38->104
[105] 21->105 172->106 112->107 1->108 20->109 453->110 80->111 703->112 20->113 9->114 79->115 1->116 47->117
+ ... omitted several edges
这是用于创建绘图的 r 降价代码。
```{r, results='asis', fig.width = 7, fig.heigt = 7}
set.seed(1)
l2 <- igraph::layout.lgl(cell_dtree)
l2 <- igraph::layout.norm(l2, ymin = -2, ymax = 2, xmin = -2, xmax = 2)
plot(cell_dtree,
rescale = F,
layout = l2 * 1,
edge.arrow.width=0.1,
vertex.label=NA,
vertex.size=1,
vertex.label=NA,
edge.width=0.5,
edge.arrow.size=0.5,
edge.arrow.width=0.7)
```
当这个文档通过 knittr 时,绘图看起来像是被切断了,在 knitr html 输出中只显示了中心的一个矩形区域。
为了解决这个问题,我运行了 igraph 的 Erdos-Renyi 图的实现,使用与上图相同的顶点数(720)和相同的绘图参数:
```{r, results='asis', out.width = '100%', out.height = '100%', fig.width = 7, fig.heigt = 7}
er <- igraph::sample_gnm(n=720, m=40)
plot(er, vertex.size=6, vertex.label=NA)
set.seed(1)
l2 <- igraph::layout.lgl(er)
l2 <- igraph::layout.norm(l2, ymin = -2, ymax = 2, xmin = -2, xmax = 2)
plot(er,
rescale = F,
layout = l2 * 1,
vertex.label=NA,
vertex.size=1,
vertex.label=NA,
edge.width=0.5,
edge.arrow.size=0.5,
edge.arrow.width=0.7)
```
然而,生成的图像正是我想要它做的:以一种有效的方式填充图形框,没有那些大的白色边框。显然不是所有的顶点都显示在这里,但缩放有助于显示布局正在使用图像的所有可用空间:
解决方案
推荐阅读
- scipy - 有没有办法使用 scipy.interpolate 进行 1d 样条插值,边界条件指定远离数据?
- python - 无法在我的虚拟机上使用 Selenium Webdriver 进行身份验证和登录
- python - 从数据框列表创建 3d 曲面图
- keras - 我的基本事实是一系列灰度图像
- javascript - MUI 的 ListItemText 组件中的目标跨度以通过 useStyle 挂钩应用样式
- android - 离子电容器android模拟器使控制台日志在终端中可见
- javascript - 将 Prev Next 控件添加到 Carousel
- python - 将 Python 解释器嵌入到 C 程序中时,如何选择使用哪个 Python 解释器?
- python - 使用 python 将 PDF 插入 Postgres 数据库并检索它
- javascript - 在强大的 form.parse 中, throw 关键字无法正常工作