R igraph,如何使用形状和光栅的混合来绘制顶点?

2024-02-04

我正在尝试使用 R 和 igraph 绘制图形,混合使用形状和光栅图像作为顶点。我修改了下面的 igraph 示例来重现我的问题。有人能看出出了什么问题吗?您需要一个 png 文件来测试脚本。

library(png)
library(igraph)

img.1 <- readPNG(system.file("img", "Rlogo.png", package="png")) 

shapes <- setdiff(shapes(), "")

g <- make_ring(length(shapes))

V(g)$shape <- shapes

#change the rectangle variants to raster
V(g)$shape[grepl("rect",V(g)$shape)] <- "raster"
#give every vertex the same image, regardless of shape
V(g)$raster <- replicate(vcount(g), img.1, simplify=FALSE)

plot(g,
    vertex.size=15, vertex.size2=15,
    vertex.pie=lapply(shapes, function(x) if (x=="pie") 2:6 else 0),
    vertex.pie.color=list(heat.colors(5)))

这似乎是一种方法,但它需要一些手动调整以适应栅格。

library(png)
library(igraph)

# Your code
img.1 <- readPNG(system.file("img", "Rlogo.png", package="png")) 
shapes <- setdiff(shapes(), "")
g <- make_ring(length(shapes))
V(g)$shape <- shapes

# Change some shapes to user defined         
V(g)$shape[grepl("rect",V(g)$shape)] <- "myimg"

# Using idea from http://igraph.org/r/doc/shapes.html
# define function for image 
# manually tweaked the x any y to increase size of image
myimg <- function(coords, v=NULL, params) {
           vertex.size <- 1/200 * params("vertex", "size")
           if (length(vertex.size) != 1 && !is.null(v)) {
             vertex.size <- vertex.size[v]
           }
           rasterImage(img.1, 
             coords[,1]-vertex.size, coords[,2]-vertex.size, 
             coords[,1]+vertex.size, coords[,2]+vertex.size)
           }

# add shape
add_shape("myimg",  plot=myimg)

# plot
plot(g, vertex.size=seq(5, 5*length(shapes), 5), vertex.size2=seq(5, 5*length(shapes), 5)
    vertex.pie=lapply(shapes, function(x) if (x=="pie") 2:6 else 0),
    vertex.pie.color=list(heat.colors(5)))

To give

我敢说有更多的 igraph 方法来解决这个问题

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

R igraph,如何使用形状和光栅的混合来绘制顶点? 的相关文章

随机推荐

  • pycrypto 和 Google 应用引擎

    如何将 pycrypto 与 GAP 结合使用 It says here https developers google com appengine docs python tools libraries它不支持最新版本 这是否意味着我必须
  • 如何将值从子功能组件传递到父类组件?

    我有一个父类组件和一个子功能组件 我们如何将值从这种类型的子组件传递到父组件 我见过一些将值从子类组件传递到父类组件的示例 父组件 import React from react import ChildComponent from Chi
  • Heroku 上的 Resque 后台作业

    我在 Heroku 上遇到了一个非常奇怪的问题 我已经花了一段时间来解决这个问题 我的应用程序有一些外部 API 调用和邮件程序 我已将它们设置为在后台运行 ActiveJob 在 Heroku 上 我设置了两个工作人员 并且我正在使用 R
  • 如何在 Eclipse 中格式化 html 文件?

    XML 格式工作得很好 但 html 格式却不行 事实上 如果我对 html 文件使用 cmd shift F 它几乎会左对齐所有内容 我附上了之前和之后的照片 有谁知道如何解决这一问题 我尝试了 HTML 格式首选项 但没有成功 请注意
  • Maxima 中 Maple“unapply”或 Mathematica“Function”的模拟

    在 Wolfram Mathematica 中 我们可以定义作用于函数 即返回函数的函数 的运算符 例如至于下面示例中作用于两个参数的函数的第一个参数的乘法运算符 X f Function x y x f x y 然后我们可以将此运算符应用
  • 给定一个CGPath,如何让它弯曲?

    在下面的屏幕截图中 当您拖动单词气球的尾部 从气球连接到人的嘴的东西 时 形状会弯曲 如图中两个气球尾部之间的差异所示 我想知道 这是怎么做到的 我假设您需要从 CGPath 开始并对它做一些事情 有人知道这是什么吗 更新 所以如果我想弯曲
  • 同时读取子进程的 stdout 和 stderr

    我正在尝试在 Python 中运行一个冗长的命令 输出到 stdout 和 stderr 我想轮询子进程并将输出写入单独的文件 根据这个答案 我尝试了以下操作python 中 subprocess PIPE 的非阻塞读取 https sta
  • 来自命令行的 R 脚本

    我想运行这个示例脚本 http mazamascience com WorkingWithData p 912 http mazamascience com WorkingWithData p 912从 Windows 命令行 所以我打开命
  • 以编程方式启用/禁用实体代理

    我在新项目中使用 Entity Framework 4 1 和 POCO 实体 一切都工作正常 直到我开始使用 AppFabric 缓存来缓存实体 我开始从与反序列化代理对象相关的缓存中检索实体时出现错误 我通过设置 ContextOpti
  • 无法消除绘图的一像素宽的白色边距(底部和右侧)

    我正在尝试使用绘制并保存我的矩阵image 没有轴 标签 边距等 我需要的只是纯彩色图像 其中单元格数量将对应于保存的绘图上的像素数量 在 R 图形设备上 它看起来不错 但如果我将绘图保存到文件中 则图像的底部和右侧始终会保留一像素宽的白色
  • Bamboo + sonar.dynamicAnalysis=reuseReports = 0% 规则合规性

    Bamboo 可以进行连续构建 但希望使用 Sonar 进行质量指标跟踪 单元测试通过 失败和 Clover 代码覆盖率指标必须在 Bamboo 中捕获 但是 这些相同的值也应该发送到 Sonar 以免通过运行单元测试和 Clover 两次
  • iOS 推送通知 SSL 证书

    生成的证书是否用于发送特定于服务器的推送通知 或者如果我更改服务器 我可以在任何其他服务器上使用它吗 谢谢 您可以在任何服务器中使用它 Apple 推送通知 SSL 证书不特定于任何服务器 示例 parse com xtify com 等
  • fcgio.cpp:50: 错误: 'EOF' 未在此范围内声明

    我正在尝试在 Linux Ubuntu 10 x 机器上构建 fastcgi 我运行以下命令 配置 制作 我收到以下错误 fcgio cpp In destructor virtual fcgi streambuf fcgi streamb
  • 为什么 NoClassDefFoundError 的名称错误

    我创建了一个List java文件夹中的文件UtilityPack其中包含此代码 package Utilities public class List private class node public void insert int d
  • UWP 在打开时更改 ComboBox 位置

    我有一个ComboBox在 c XAML 中 当没有选择任何内容时PlaceHolderText显示并单击它打开它 正常行为是在中间打开它 我希望下拉菜单在顶部打开 假设我有一个ComboBox并填写数字1 100 然后我希望它显示从1 如
  • Flutter BottomNavigationBar 不适用于三个以上的项目

    我有一个问题底部导航栏在颤振中 0 6 一旦我添加超过三个 BottomNavigationBarItem小时候 栏中的按钮有白色图标 而且它们很乱 当我只使用三个或更少的物品时 一切都很好 这是我使用的小部件代码 它打破了标准 botto
  • iOS 转换十六进制值

    如何将十六进制值转换为表情符号图标 我有一个如下所示的字符串 NSString myVal 1F61E 我如何转换此文本以将其显示为表情符号字符 我发现了这个价值从这个链接 http www alanwood net unicode emo
  • 为什么 Snowsql 不打开外部浏览器?

    我想得到snowsql在我的计算机上本地工作 但我无法登录我的数据库 因为它要求我使用我的 google 帐户进行 SSO 身份验证 文档说使用 authenticator externalbrowser选项哪个should打开本地浏览器并
  • 服务器上的AJAX成功功能

    这适用于我的开发机器 但不适用于生产服务器 我正在尝试使用 ajax 更新一些 div 但它们没有更新 尽管其他部分工作正常 我在服务器上使用 IIS 6 当我使用 firebug 在服务器端调试此代码时 它不会命中我添加到 success
  • R igraph,如何使用形状和光栅的混合来绘制顶点?

    我正在尝试使用 R 和 igraph 绘制图形 混合使用形状和光栅图像作为顶点 我修改了下面的 igraph 示例来重现我的问题 有人能看出出了什么问题吗 您需要一个 png 文件来测试脚本 library png library igra