R语言推特twitter转发可视化分析
时间:2022-07-23
本文章向大家介绍R语言推特twitter转发可视化分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原文链接:http://tecdat.cn/?p=5124
包含术语“生物信息学”的推文示例
第1步:加载所需的软件包
# 加载包
library(twitteR)
library(igraph)
library(stringr)
第2步:收集关于“生物信息学”的推文
# tweets
dm_tweets = searchTwitter("bioinformatics", n=500,)
#获取推文
dm_txt = sapply(dm_tweets, function(x) x$getText())
第3步:识别转发
# 正则表达式获取推文
grep("(RT|via)((?:\b\W*@\w+)+)", dm_tweets,
ignore.case=TRUE, value=TRUE)
rt_patterns = grep("(RT|via)((?:\b\W*@\w+)+)",
dm_txt, ignore.case=TRUE)
dm_txt[rt_patterns]
第4步:收集谁转发和谁发布
我们将使用这些结果来形成边缘列表以创建图形
# 创建列表存储信息
who_retweet = as.list(1:length(rt_patterns))
who_post = as.list(1:length(rt_patterns))
# 循环
for (i in 1:length(rt_patterns))
{
# 获取推文和转发
twit = dm_tweets[[rt_patterns[i]]]
poster = str_extract_all(twit$getText(),
"(RT|via)((?:\b\W*@\w+)+)")
#删除 ':'
poster = gsub(":", "", unlist(poster))
who_post[[i]] = gsub("(RT @|via @)", "", poster, ignore.case=TRUE)
# 转发用户
who_retweet[[i]] = rep(twit$getScreenName(), length(poster))
}
# unlist
who_post = unlist(who_post)
who_retweet = unlist(who_retweet)
第5步:从编辑清单创建图形
# 边
retweeter_poster = cbind(who_retweet, who_post)
# 绘制图像
rt_graph = graph.edgelist(retweeter_poster)
# 得到点的名称
ver_labs = get.vertex.attribute(rt_graph, "name", index=V(rt_graph))
第6步:让我们绘制图
# 绘图布局
glay = layout.fruchterman.reingold(rt_graph)
# 绘制
par(bg="gray15", mar=c(1,1,1,1))
plot(rt_graph, layout=glay,
vertex.color="gray25",
vertex.size=10,
vertex.label=ver_labs,
vertex.label.family="sans",
vertex.shape="none",
vertex.label.color=hsv(h=0, s=0, v=.95, alpha=0.5),
vertex.label.cex=0.85,
edge.arrow.size=0.8,
edge.arrow.width=0.5,
edge.width=3,
edge.color=hsv(h=.95, s=1, v=.7, alpha=0.5))
# 添加标题
title("nTweets with 'bioinformatics': Who retweets whom",
cex.main=1, col.main="gray95")
第7步:让我们试着给它一个更生物信息学的外观
#
par(bg="gray15", mar=c(1,1,1,1))
plot(rt_graph, layout=glay,
vertex.color=hsv(h=.35, s=1, v=.7, alpha=0.1),
vertex.frame.color=hsv(h=.35, s=1, v=.7, alpha=0.1),
vertex.size=5,
vertex.label=ver_labs,
vertex.label.family="mono",
vertex.label.color=hsv(h=0, s=0, v=.95, alpha=0.5),
vertex.label.cex=0.85,
edge.arrow.size=0.8,
edge.arrow.width=0.5,
edge.width=3,
edge.color=hsv(h=.35, s=1, v=.7, alpha=0.4))
# 添加标题
title("nTweets with 'bioinformatics': Who retweets whom",
cex.main=1, col.main="gray95", family="mono")
- React第三方组件6(状态管理之Mobx的使用⑤异步操作)
- 机器学习(五)使用Python和R语言从头开始理解和编写神经网络介绍目录神经网络背后的直观知识多层感知器及其基础知识什么是激活函数?前向传播,反向传播和训练次数(epochs)多层感知器全批量梯度下降
- 洛谷P2251 质量检测
- React第三方组件6(状态管理之Mobx的使用④TodoList下)
- HDU 1536 S-Nim
- 洛谷P2723 丑数 Humble Numbers
- Python黑帽编程2.5 函数
- 洛谷P1317 低洼地
- ZOJ 3594 Sexagenary Cycle
- React第三方组件6(状态管理之Mobx的使用③TodoList中)
- P1554 梦中的统计
- Word2Vec教程-Skip-Gram模型模型“伪”任务关于模型的更多细节隐藏层输出层
- React第三方组件6(状态管理之Mobx的使用②TodoList上)
- The 9th Zhejiang Provincial Collegiate Programming Contest
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- AWS CodeArtifact 如何设置用户的 TOKEN
- GORM V2 自动迁移和迁移接口的方法
- Vue Nginx反向代理配置 解决生产环境跨域
- react的事件处理为什么要bind this 改变this的指向?
- 没有用到React,为什么我需要import引入React?
- JSON对象和JavaScript对象直接量的区别--不同之处
- (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
- 关于DOM的理解
- 关于闭包函数和递归函数的详细理解
- 新手怎么学JS?JavaScript基础入门
- 纯CSS制作加<div>制作动画版哆啦A梦
- Ubuntu 18.04 安装使用 Supervisor 进程守护并设置开机自动启动
- AWS CLI version 2 在 Windows 下的安装
- Vue事件绑定原理
- 组合