原文链接: http://tecdat.cn/?p=23836
咱们应用R中的igraph包,产生了网络的图形。
然而很难将这些图表放到演讲和文章中,因为图表很难依据须要定制。应用igraph中的绘图性能能够失去你想要的后果,但用ggplot对工作更有帮忙。所以本文摸索了一种在ggplot中创立igraph绘图的办法。
igraph图
首先,我将带入数据,这是一个物种绝对丰度的矩阵。列是物种,每行是一个观测值。上面是数据的浏览
head(data.wide)
加载igraph库并运行生成网络的前几个步骤
library(igraph)all <- bipartite.projection(inc)
绘制这两幅图产生的图形还能够,但并不美观。
op <- par(mfrow = c(1, 2))plot(obs, layout = layout.fruchterman.reingold, edge.color = "black")par(op)
在ggplot中创立图形
首先让咱们提取数据,产生右边的网络根本图。GGPLOT须要数据为数据框,所以提取数据并将其转换为数据框
species <- colnames(wide2) ## 添加物种代码df ## 显示每个节点的x(V1)和y(V2)坐标。
当初咱们有了图中所有节点的坐标,咱们能够在ggplot中绘制了
library(ggplot2)ggplot() + geom_point( color="black") + # 在节点四周增加一个彩色的边框 geom_text( label=species ) + # 增加节点的标签
当初咱们有了正确的节点,画出节点之间的连贯。
get(obs) # 应用函数取得边信息
df\[match(from, species)\] # 匹配之前连贯的节点数据框架中的 from 地位。gto <- all\[match(to, specie)\] # 匹配之前连贯的节点数据框中的to地位
而后绘制
ggplot() + geom_point(color="black") + # 在节点四周增加一个彩色的边 geom_text(label=species)) + # 增加节点的标签
让咱们弄乱主题,删除网格线和轴标签等。
ggplot() + geom_point(color="black") + # 在节点四周增加一个彩色的边 geom_text(label=species)) + # 增加节点的标签 axis.text.x = element_blank(), # 移除x轴文字 axis.text.y = element_blank(), #删除y轴文字 axis.ticks = element_blank(), # 删除轴的刻度线 axis.title.x = element_blank(), # 删除X轴标签 axis.title.y = element_blank(), # 删除y轴标签 panel.grid.major = element_blank(), #移除次要网格的标签 panel.grid.minor = element_blank(), #删除minor-grid标签
如果咱们想把社区检测算法中的一些元素纳入左边的图中。咱们能够把一个组中的元素变成红色,另一个组中的元素变成蓝色。组内的连贯将是一条实线,组间的连贯将是一条虚线。
data.frame(sp = names, g=membership) #创立一个物种和组成员的数据框架 g\[match( from, sp )\] # 在g数据框中为from和to节点匹配组成员资格
grp <- group\[match( species, species)\] # 将组类型增加到节点数据框中。
ggplot() + geom_segment(type=as.factor(type)),color="black") + # 增加线 geom_point(color="black") + # 在节点四周增加一个彩色的边界。 geom_text(label=species)) + # 增加节点的标签 theme_bw()+ # 应用ggplot的黑白主题 theme( axis.text.x = element_blank(), # 移除x轴文字 axis.text.y = element_blank(), #删除y轴文字 axis.ticks = element_blank(), # 删除轴的刻度线 axis.title.x = element_blank(), # 删除X轴标签 axis.title.y = element_blank(), # 删除y轴标签 panel.grid.major = element_blank(), #移除次要网格的标签 panel.grid.minor = element_blank(), #删除minor-grid标签
最受欢迎的见解
1.R语言动态图可视化:如何、创立具备精美动画的图
2.R语言生存剖析可视化剖析
3.Python数据可视化-seaborn Iris鸢尾花数据
4.r语言对布丰投针(蒲丰投针)试验进行模仿和动静
5.R语言生存剖析数据分析可视化案例
6.r语言数据可视化剖析案例:摸索brfss数据数据分析
7.R语言动静可视化:制作历史寰球平均温度的累积动静折线图动画gif视频图
8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化剖析案例报告
9.python主题LDA建模和t-SNE可视化