R语言进行Twitter数据可视化( 四 )


R语言进行Twitter数据可视化文章插图
图4是包含关键字“Joko Widodo”和“Prabowo Subianto”的情感得分密度图 。 tweets的得分是由组成tweets的词根的平均得分得到的 。 因此 , 它的分数是针对每个词根给出的 , 其值介于-10到10之间 。 如果分数越小 , 那么微博中的负面情绪就越多 , 反之亦然 。 根据图4(左) , 可以得出结论 , 包含关键字“Joko Widodo”的推文的负面情绪在-10到-1之间 , 中间得分为-4 。 它也适用于积极的情绪(当然 , 有一个积极的分数) 。 根据图4(左)中的密度图 , 我们发现积极情绪的得分具有相当小的方差 。 因此 , 我们得出结论 , 对包含关键词“Joko Widodo”的微博的积极情绪并不是太多样化 。
图4(右)显示了包含关键字“Prabowo Subianto”的情感得分密度图 。 它与图4(左)不同 , 因为图4(右)上的负面情绪在-8到-1之间 。 这意味着tweets没有太多负面情绪(tweets有负面情绪 , 但不够高) 。 此外 , 负面情绪得分的分布在4和1之间有两个峰值 。 然而 , 积极情绪从1到10不等 。 与图4(左)相比 , 图4(右)的积极情绪具有较高的方差 , 在3和10范围内有两个峰值 。 这表明 , 包含关键词“Prabowo Subianto”的微博具有很高的积极情绪 。
# JOKO WIDODOdf.senti.3 = as.data.frame(table(senti.jokowi$class))colnames(df.senti.3) = c('Sentiment','Freq')# 数据预处理df.pie.1 = df.senti.3df.pie.1$Prop = df.pie.1$Freq/sum(df.pie.1$Freq)df.pie.1 = df.pie.1 %>%arrange(desc(Sentiment)) %>%mutate(lab.ypos = cumsum(Prop) - 0.5*Prop)# 数据可视化ggplot(df.pie.1,aes(x = 2,y = Prop,fill = Sentiment))+geom_bar(stat = 'identity',col = 'white',alpha = 0.75,show.legend = TRUE)+coord_polar(theta = 'y',start = 0)+geom_text(aes(y = lab.ypos,label = Prop),color = 'white',fontface = 'italic',size = 4)+labs(title = 'Piechart of Sentiments',subtitle = 'Joko Widodo',caption = 'Twitter Crawling 28 - 29 May 2019')+xlim(c(0.5,2.5))+theme_void()+scale_fill_brewer(palette = 'Dark2')+theme(legend.title = element_blank(),legend.position = 'right')# PRABOWO SUBIANTOdf.senti.4 = as.data.frame(table(senti.prabowo$class))colnames(df.senti.4) = c('Sentiment','Freq')# 数据预处理df.pie.2 = df.senti.4df.pie.2$Prop = df.pie.2$Freq/sum(df.pie.2$Freq)df.pie.2 = df.pie.2 %>%arrange(desc(Sentiment)) %>%mutate(lab.ypos = cumsum(Prop) - 0.5*Prop)# 数据可视化ggplot(df.pie.2,aes(x = 2,y = Prop,fill = Sentiment))+geom_bar(stat = 'identity',col = 'white',alpha = 0.75,show.legend = TRUE)+coord_polar(theta = 'y',start = 0)+geom_text(aes(y = lab.ypos,label = Prop),color = 'white',fontface = 'italic',size = 4)+labs(title = 'Piechart of Sentiments',subtitle = 'Prabowo Subianto',caption = 'Twitter Crawling 28 - 29 May 2019')+xlim(c(0.5,2.5))+theme_void()+scale_fill_brewer(palette = 'Dark2')+theme(legend.title = element_blank(),legend.position = 'right')
R语言进行Twitter数据可视化文章插图
图5是推特的情绪得分汇总 , 这些微博被分为负面情绪、中性情绪和积极情绪 。 消极情绪是指得分低于零的情绪 , 中性是指分数等于零的情绪 , 积极情绪得分大于零 。 从图5可以看出 , 关键字为“Joko Widodo”的微博的负面情绪百分比低于关键字为“Prabowo Subianto”的tweet 。 有6.3%的差异 。 研究还发现 , 与关键词为Prabowo Subianto的微博相比 , 包含关键词“Joko Widodo”的微博具有更高的中性情绪和积极情绪 。 通过piechart的研究发现 , 与关键字为“Prabowo Subianto”的tweet相比 , 带有关键字“Joko Widodo”的tweet倾向于拥有更高比例的积极情绪 。 但是通过密度图发现 , 积极和消极情绪得分的分布表明 , 与“Joko Widodo”相比 , 包含关键字“Prabowo Subianto”的微博往往具有更高的情绪得分 。 它必须进行进一步的分析 。