如何在R中实现双变量斜率图及#HashtagX用户推文贡献分析
嘿,我帮你把#HashtagX的用户分析结果整理清楚,同时手把手教你在R里实现双变量斜率图👇
#HashtagX用户贡献分析结果
- 累计共有14432位用户曾使用#HashtagX发布推文
- 仅20位核心用户就贡献了该话题下推文总量的20.68%,而这部分用户仅占总用户数的0.001%
- 推文数量排名前100的用户,贡献了该话题下**44%**的推文
- 当范围扩展至排名前500的用户时,推文贡献占比进一步提升至72%
在R中实现双变量斜率图的方法
双变量斜率图非常适合对比不同分组下两个指标的变化趋势,这里我们用最常用的ggplot2包来实现,步骤如下:
1. 准备工作(安装并加载包)
如果还没安装ggplot2,先执行安装命令,再加载包:
# 安装ggplot2包(首次使用时执行) install.packages("ggplot2") # 加载包 library(ggplot2)
2. 构造数据
我们可以基于你的分析数据构造示例数据集,包含用户分组、推文占比、用户占比三个字段:
# 构造适配斜率图的数据集 slope_data <- data.frame( user_group = c("Top 20 Users", "Top 100 Users", "Top 500 Users"), tweet_contribution = c(20.68, 44, 72), user_proportion = c(0.001, round(100/14432*100, 4), round(500/14432*100, 4)) )
3. 绘制基础双变量斜率图
用geom_line和geom_point分别绘制两个指标的趋势线和标记点,同时添加清晰的标签和样式:
# 绘制基础双变量斜率图 ggplot(slope_data, aes(x = user_group)) + # 绘制推文贡献占比的线与点 geom_line(aes(y = tweet_contribution, group = 1, color = "推文贡献占比"), size = 1.2) + geom_point(aes(y = tweet_contribution, color = "推文贡献占比"), size = 3) + # 绘制用户占比的线与点 geom_line(aes(y = user_proportion, group = 2, color = "用户占比"), size = 1.2) + geom_point(aes(y = user_proportion, color = "用户占比"), size = 3) + # 设置坐标轴与标题 labs( x = "用户分组", y = "百分比", title = "#HashtagX用户分组贡献趋势对比", color = "指标类型" ) + # 优化主题样式 theme_minimal() + theme( plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), axis.title = element_text(size = 12), legend.title = element_text(size = 11) )
4. 进阶:添加数值标签
如果想让图表更直观,可以给每个点添加对应的数值标签:
# 带数值标签的进阶版斜率图 ggplot(slope_data, aes(x = user_group)) + geom_line(aes(y = tweet_contribution, group = 1, color = "推文贡献占比"), size = 1.2) + geom_point(aes(y = tweet_contribution, color = "推文贡献占比"), size = 3) + # 添加推文占比的数值标签 geom_text(aes(y = tweet_contribution, label = paste0(tweet_contribution, "%")), vjust = -1, color = "#2E86AB", size = 4) + geom_line(aes(y = user_proportion, group = 2, color = "用户占比"), size = 1.2) + geom_point(aes(y = user_proportion, color = "用户占比"), size = 3) + # 添加用户占比的数值标签 geom_text(aes(y = user_proportion, label = paste0(user_proportion, "%")), vjust = -1, color = "#F24C4E", size = 4) + labs( x = "用户分组", y = "百分比", title = "#HashtagX用户分组贡献趋势对比", color = "指标类型" ) + # 自定义颜色 scale_color_manual(values = c("推文贡献占比" = "#2E86AB", "用户占比" = "#F24C4E")) + theme_minimal() + theme( plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), axis.title = element_text(size = 12), legend.title = element_text(size = 11) )
这样就能清晰展示不同用户分组下,推文贡献占比和用户数量占比的变化趋势啦~
内容的提问来源于stack exchange,提问作者RMN
相关产品推荐
相关产品推荐

