微信朋友圈怎么发文章 换种方式刷朋友圈——微信朋友圈数据分析
![](http://419ai.oss-cn-beijing.aliyuncs.com/2023/07/20230726191152761.png)
缘起
互联网上有不少网友分享自己的朋友圈总结,例如 豆瓣 上一位网友总结的自己的朋友圈,从下方的评论来看,非常真实而又十分精准:
朋友圈里半数是学术圈的人,凭印象总结发圈方式:院级以上领导一般不发消息,偶尔点赞;院级领导转发与本院或本学科有关资讯,以及中央文件和政策;教授转发自己撰写的书著、论文、评论或发言;副教授和讲师转发学科资讯,以及间接与时政有关的内容;媒体编辑和作家转发直接与时政有关的内容;学生发照片、饮食娱乐资讯,有时还发我们看不懂的牢**。
2022 年 5 月 23 日晚上,我在洗澡的时候突然冒出一个「浴室沉思」:我的微信朋友圈中的主要内容是什么?大家都爱在什么时间段发朋友圈?主要发的是文字、图片还是链接?分享的内容透露出什么样的情绪?什么样的内容比较受欢迎?……
此前,我读了学术期刊 of China 上的 一篇论文,标题为 in the Semi- : A of Cross- and from ,作者通过自然实验的方法,研究了微信如何对半私域——微信公众号——进行审查。这种关注我们的日常经历的研究,让我非常感兴趣,同时也深受启发,因此我决定试一试,对自己的朋友圈做个简单的数据分析,看看会有什么有趣的发现。实际上,在进行分析之前,相信大多数人和我一样,心中已有一些推断,而通过定量的数据分析,则可以验证或推翻这些判断。
本来我的计划是在收集完朋友圈数据之后,用 和 R 对它们做一些数据分析,然后使用 R 的 样式生成 HTML 和 PDF 分享出来。然而,当我前几天打开该文件夹的时候,却发现 Git 仓库中半年前的修改内容还没有被提交(),只做了一部分,真是一个不折不扣的「烂尾工程」。
现在想来,大概是半年前的生活太过混乱,各种事情应接不暇,心态也很不稳定,搁置下来的任务后来就被遗忘了。而半年之后,表格中的个别联系人已经和我单向或双向屏蔽或删除,我们在基于微信构建的人际关系网络中失去了联系,不由让人感慨,成年人的世界就是这么悄无声息而又直击要害。
最近,我又需要做几个类似的数据分析,为了复用之前的代码,自然就翻出了这个项目。可是由于时间过去太过久远,而我当时主要「面向 Stack 编程」,现在几乎已经想不起来这些代码的含义,因此也就不知道如何修改它们。为了温习一下半年前的「遗迹」,也为了赶上少数派 2022 年度征文活动,我花了几天整理并回顾了这些代码,并加上了自己的解释和理解,写出了这篇文章,打算给半年前的这个「烂尾工程」收个尾,彻底与 2022 年挥手告别。之所以这样做,是因为一方面我可以在回顾的过程中,唤起曾经的久远记忆,另一方面,如果有童鞋需要使用 和 R 进行简单的数据分析,也可以复用这些代码。除此之外,你还可以顺便看看我的微信朋友圈究竟是什么样的 。
需要提醒的是,由于数据的可获取性,我只能总结自己的朋友圈,因此下面的结论可能不具有普遍性,本文的意义在于提供分析微信朋友圈的角度,希望可以抛砖引玉。另外,我也不打算为「微信研究」做出所谓的「理论贡献」,本文既不是学术论文,也不是调研报告,下面我所写的内容充满了主观色彩,在某些评价体系中,有可能全都是错的,各位读者权当一乐。
数据收集
根据我的观察,一条朋友圈在发布 24 小时后,几乎就不会再有互动,它的各项数据基本就稳定了下来,而由于微信朋友圈最短的时间是「三天可见」,发布后超过三天,相当一部分朋友圈就消失不见。因此,我当时采取的策略是每天收集两天之前的朋友圈,并对每一条朋友圈截图归档,前后一共持续了 16 天,最终收集了 69 位联系人2的 245 条朋友圈信息。
在数据收集的过程中,由于我需要在手机上操作,不方便使用 Excel 表格,因此选择将原始数据保存在 数据库中,最后再将其导出为 CSV 文件。
保存在 中的原始数据
这些数据的格式可以参见下面这个 CSV 文件示例,应该可以从表头名称猜出各自的含义:
name, relationship_with_me, time_of_visibility, published_time, day, hour, keywords, medium, number_of_images, context, property, emotional_level, number_of_likes, number_of_comments, last_edited_time
张大锤, 高中同学, 半年, "May 24, 2022 13:20", 2022-05-24, 13:20, 投票, "emoji, 图片, 文字", 2, 是, personal, positive, 13, 0, "June 15, 2022 04:47 PM"
王二云, 本科同学, 三天, "May 22, 2022 9:26", 2022-05-22, 09:26, 毕业答辩, "emoji, 文字, 标签, 链接", 0, 是, exclusive, neutral, 0, 0, "June 13, 2022 11:29 AM"
李小乐, 研究生同学, 一个月, "May 30, 2022 22:31", 2022-05-30, 22:00, 音乐, 音乐, 0, 否, exclusive, neutral, 0, 0, "June 15, 2022 10:28 PM"
存储数据的 CSV 文件一共有 15 列,其中的 12 列都是我手动输入的,最后的 字段是 自动生成的,而 day 和 hour 则是用 函数根据 转换得到的:
# Get the day
formatDate(prop("published_time"), "YYYY-MM-DD")
# Get the hour
formatDate(prop("published_time"), "HH:00")
虽然用 R 转换时间格式也是可以的,但使用 函数非常简单,这是一种「重器轻用」的方法,也是我在 2022 年折腾各类工具时,多次告诫自己的一条原则:放弃纠结、拥抱妥协,不要执着于只用某一个工具完成某一项任务,怎么方便快捷怎么来,完成任务最重要。
数据可视化使用 制作词云图
在我收集的数据中,其中一项是 ,这是我对每一条朋友圈的总结,一般是一个或多个短语,也可以看作是对它们打的 tag,一看见这些标签,我就可以想起对应的朋友圈的大致内容。为了视觉上直观地看看大家都在微信朋友圈中发些什么,首先用下面的 代码对 字段制作一张词云图:
# Import libraries
import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# Load the data
df = pd.read_csv("moments.csv")
text = " ".join(key for key in df.keywords.astype(str))
# Create the wordcloud
wordcloud = WordCloud(font_path = "LXGWWenKai-Regular.ttf",
width = 3200,
height = 1600,
max_font_size = 200,
max_words = 400,
background_color = "#fffff8",
collocations = False
).generate(text)
plt.figure(figsize = (20,10))
plt.imshow(wordcloud, interpolation = "bilinear")
plt.axis("off")
plt.tight_layout(pad = 0)
# Save the image
wordcloud.to_file("keywords.png")
其实 R 也是可以 制作词云图 的,但 库 使用更广泛,似乎更好用,因此我就选择了它。为了运行这段代码,你需要搭建一个 运行环境,并安装另外两个 库 和 。除此之外,这里还用到了字体 LXGW (霞鹜文楷),需要单独安装,当然你也可以替换为系统中的其他字体。用于生成词云图的数据保存在 .csv 中,是从 中导出的。
由于我的朋友圈关键词涉及个人隐私,这里不便分享,因此以著名的《兰亭集序》为例,展示一下生成的词云图:
使用《兰亭集序》生成的词云图加载 R 包和数据
在制作完词云图之后, 的任务就完成了,下面的数据可视化,就该轮到 R 登场了,这是因为我使用的是 R ,并且在数据可视化方面,与 相比,我相对更加熟悉 R。首先,我们需要做的是加载需要用到的 R 包和数据文件,这样后面就不再需要重复加载了:
# `install.packages("package-name")`
# Using Python in R Markdown
library(reticulate)
use_python("~/.pyenv/shims/python")
# Import packages
library(tufte)
library(dplyr)
library(tidyr)
library(ggplot2)
library(ggrepel)
library(showtext)
font_add("lxgw", "LXGWWenKai-Regular.ttf")
showtext_auto()
# Load the data
data <- read.csv("moments.csv")
sepdata <- separate_rows(data, medium, sep = ",\s")
请注意,上面这段代码只是为了加载 R 包和数据,并不能生成下文中的分析图,如果你有需要,可以前往 这里 下载完整的 R 代码文件,用于生成本文出现的所有分析图。
由于所有的数据都保存在 CSV 文件 .csv 中,这里使用 R 内置的 read.csv() 函数来读取它并保存为 data 变量。如果有些 R 包没有安装,可以在终端中进入 R 环境,使用命令 .("-name") 来安装对应的包,例如使用命令 .("") 安装 ,当然,你也可以直接安装 —一个用于数据分析的 R 包集合,其中包括这里用到的大部分 R 包。除了在命令行中操作 R,你也可以安装 进行可视化操作。
值得一提的是,为了在 R 中使用 ,这里使用了 R 包 ,因此需要在第 4 行中指定 的路径,我使用的是 pyenv 安装的 3.10.0,因此第 4 行是~/.pyenv/shims/。最后一行的作用是以逗号 , 和空格 s 为分隔符,用 函数将一行内容拆分为多行,保存为 变量,便于后续的分析,这是 tidyr 包提供的功能。而 (tufte) 的作用是为了在 R 中使用 Tufte 样式,其中的 YAML 块的内容如下,供你参考:
title: "An Analysis of the WeChat Moments"
subtitle: "An Implementation in R Markdown"
author: "Tom Ben"
date: "`r Sys.Date()`"
output:
tufte::tufte_handout:
latex_engine: xelatex
tufte::tufte_html:
tufte_features: ["fonts", "background"]
pandoc_args: ["--shift-heading-level-by=-1", "--wrap=none"]
# toc: true
# tufte_variant: "envisioned"
mainfont: Palatino
monofont: JetBrainsMono-Regular
CJKmainfont: NotoSerifCJKsc-Regular
CJKmonofont: FangSong
# bibliography: bibliography.bib
# link-citations: yes
header-includes:
- usepackage{hyperref}
- hypersetup{colorlinks=true,
urlcolor=blue!80,
citecolor=red!80}
使用 Tufte 样式排版的文章朋友圈可见时长
众所周知,微信用户可以对自己的朋友圈设置可见时长,其他人只能看见这个时间段内用户发布的朋友圈,具体来说,可以设置为:
那么我的微信联系人是怎么设置的呢?从下图可以看出,4 种类型的可见时长分布比较平均,印象中最多的「三天可见」果然占比最高,但与其它 3 类相比,差距并不是很大,而占比最低的则是「无时限」。占比最高和最低的可见时长,分别是最短的「三天」和最长的「无时限」,这与我的推测基本一致。
朋友圈可见时长比例
张小龙称「可能有两亿以上的用户朋友圈设置三天可见」,并称「我们鼓励用户去设置三天可见,希望这样子使得他更加勇敢的去发朋友圈」,可是这二者的因果关系是存在的吗?难道不是因为用户不太喜欢发朋友圈、不想让他人看见自己过去所发的内容,才设置为三天可见吗?而喜欢发朋友圈的人,往往会很大方地向他人展示自己的过往。不得不说,每天 一亿人教张小龙做产品 不是没有原因的。
尽管微信提供了 4 类设置朋友圈可见时长的选项,但我一个都没有使用,而采取了另外一种策略——手动删除发送后的每一条朋友圈。一方面,我可以通过这种方式「自定义」朋友圈可见时长,因为我可以在任意时间点进行删除(被微信屏蔽的朋友圈除外),另一方面,微信不提供朋友圈导出功能,而我不想把数据保存在它的平台上,在每次删除朋友圈前,我都会将其截图,相当于手动备份一下。当然,这种手动删除朋友圈的方式也有弊端,例如联系人无法进入我的朋友圈——因为它是空的,无法点击,甚至连一条空落落的横杠线都没有,不免让人产生一点距离感,可能也是因为这个原因,部分曾经的联系人把我删除了。
朋友圈活跃人群
从下图可以看出,发朋友圈最多、最活跃的人群是我的高中同学,其次是本科同学,加起来超过 80%。这大概是因为高中同学和本科同学本来就在所有联系人中占有很高的比例,其他人群如小学同学、老师、亲戚的数量不多,而研究生同学被我屏蔽了不少,或者对方把我屏蔽了,因此形成了这种「两极分化」的结果。很大程度上,微信朋友圈而不是微信的聊天功能,才是曾经的老同学的联系方式,甚至是唯一的方式。对我来说,没有互相加过微信的同学,往往更容易忘记对方的名字。
朋友圈活跃人群发朋友圈次数
在我统计的 16 天时间里,最多的联系人发了 17 条朋友圈,平均 1 天超过 1 条。在我的印象中,这两位同学本身就是「话唠」一样的性格,极富「表达欲」,几乎什么内容都往往朋友圈里发,甚至还要在底下加一大段自己的评论。对于这种行为,我认为无可非议,毕竟那是个人的自由,我们也不应该用自己狭隘的单一标准去评价别人:在习惯性作出一项价值判断时,试着反思一下它背后的来源以及是否合理。
尽管如此,朋友圈作为一个人际关系广场,还是应该考虑到其他受众的感受。因为朋友圈是 -based 而不是 -based 的,所以如果你发的内容不是你的朋友们感兴趣的(而这几乎是必然的),而数量又很多的话,那么他们就会觉得你在「刷存在感」,或者在「立人设」,甚至其他各种乱七八糟的看法。也许正是基于这种顾虑,发 1 条朋友圈的联系人是最多的(当然没有发的联系人更多,但不在此次统计范围之内)。
发朋友圈次数分布情况发布的媒介类型
朋友圈可以发布文字、图片、链接等多种类型的的内容,我将它们分成了 7 类,一条朋友圈可以同时包括多种类型:
从下图可以看到,文字、图片和 emoji 是最多的,合计占到了 80% 以上。相比之下,标签、链接、音乐和视频占比就很低了,合计不到 20%。很大程度上,这是微信朋友圈产品设计的结果,因为文字和 emoji 是最容易使用的,标签相对较新,很多用户对此不熟悉。
而朋友圈的设计对图片是非常友好的,它的发布入口是一个相机图标,点击之后有「拍摄」和「从手机相册选择」两个选项,如果首次长按该图标发送文字,微信会提示「长按拍照按钮发文字,为内部体验功能。后续版本可能取消,也有可能保留,请勿过于依赖此方法」。而如果你点击「我 -> 朋友圈」之后,则会在顶部显示「拍一张图片,开始记录你的生活」。
发布的媒介类型
众所周知,微信是一个对开放互联网极度不友好的平台,它的公众号不支持跳转外部链接,内容无法被搜索引擎索引,还会无故屏蔽所谓的「有害链接」,这无疑会极大降低用户分享外部链接的意愿,甚至会潜移默化地改变用户使用互联网的方式,而这导致的后果是非常糟糕的3,正如 Yiqin Fu 所说:
, by not links and not on their to be , did to at least two of .
微信不允许外部链接,不允许在其平台上发布的内容被索引,对至少两代中国人造成了永久性的伤害。
在我收集的数据中,链接所占的比例是 9.3%,排名第 4,但我没有统计该链接是微信内部链接(如微信公众号)还是外部链接,这有一点遗憾,不过印象中几乎都是微信内部链接。的确如 Yiqin Fu 所说,高度依赖微信的中国人似乎已经忘记了 超链接,这已经并将长久地影响中国人的信息获取习惯4。顺便一提,在我看来,微信中的卡片式链接并不是真正的超链接,因为它可能会在后面添加冗长的链接追踪参数,这是用户无法控制的,此外,如果一篇微信公众号文章被屏蔽,则无法通过卡片式链接获取到这篇文章的 URL。
每天的发布次数
从 2022 年 5 月 22 日至 2022 年 6 月 6 日的 16 天时间里,发布朋友圈条数最多的一天是 6 月 1 日,达到了 26 条,也许因为这一天是一年一度的儿童节,很多同学都还不想长大,幻想着自己还是一个要过节的小孩子,所以想要发条朋友圈庆祝一下。而最少的一天则是 5 月 24 日,只有 9 条,大概是因为这一天是星期二,大家都在上课或上班,煎熬地度过「求死 Day」(),而痛苦的日子大多是不适合发布在微信朋友圈中的。平均来看,每天大约发布 15.3 条。
每天的发布次数,按发布次数排列
按发布次数排列,按时间顺序排列一天中的时间分布
发布朋友圈最多的时间段是北京时间 21:00,其次是 17:00 和 22:00,总的来说,基本都集中于晚上的时间段。大概是因为这个时间段是大家下课、下班后的休息时间,不用上课和上班,所以才会有更多的时间来发朋友圈。而在晚上的时间段中,18:00–20:00 是相对低谷的时段,我猜是因为这个时间段大部分人都在吃晚饭吧。相比而言,发朋友圈最少的时间段是凌晨 01:00 到 06:00 之间,很明显这个时间段大家都在睡觉,即使是夜猫子,大概也会蛰伏在床上,享受独自快乐的时光。
一天中的发朋友圈时间分布,按发布次数排列
一天中发朋友圈的时间分布,按时间顺序排列背景信息
背景信息这一项非常主观,判断标准是从我的角度来看,是否了解这条朋友圈背后的一些信息。例如,一条朋友圈称「我们的房租减免下来了,但是我们的补偿呢?」对于大部分人来说,看见这条信息都会一头雾水,往往就会直接略过,不再有进一步的互动。而如果一条朋友圈称「坐高铁 ,去看海 ,我的意思是一起 」,配有几张和异性的合影,并且加上了定位,大概能猜出这是在「秀恩爱」,尽管观看者并不认识对方、去了哪里,但其中最关键的背景信息是具有普遍性的,这是一种长久以来形成的「网络社交共识」,如 普世价值 一样被绝大部分人所熟知和接受,因此是存在背景信息的。
从我的统计来看,将近 60% 的朋友圈没有背景信息。但是必须要承认,这是不可避免的,因为对我来说没有背景信息,对其他人来说则并非如此,而这就与接下来的「属性」密不可分。
朋友圈是否具有背景信息属性
属性同样是一个非常主观的概念,它指的是朋友圈内容涉及的对象是自己、特定人群还是公共议题。比如发朋友圈称「自己脱单了、考研上岸了」对应的是自己(),「与室友去外面开心地聚餐、学术或工作相关内容、自己独特的兴趣爱好」对应的是特定人群(),而「为 丰县铁链女 发声、转发 中共二十大 相关消息」则对应着公共议题()。
在我的统计中,53% 的朋友圈是关于自己的。这很容易理解,对不少人来说,微信朋友圈已经成为一个「人生大事发布平台」,比如宣布结婚、离婚、生小孩等消息。而按照我的标准,42% 的朋友圈涉及的内容是特定人群,往往让人看不懂,这些朋友圈往往也会高度缺乏背景信息,从我的观察来看,似乎也不太受欢迎5。剩下与公共议题相关的只有 5%,比例很低,这大概与大部分中国人 不关心 公共问题、无力做出改变密切相关,当然也有日趋严酷的网络审查的原因。
朋友圈的属性情绪
人类的情绪 捉摸不定,如何描述情绪 是一件极具挑战性的事情,在世界上很多语言中,甚至没有合适的词语来表达某些情绪,因此存在不少「无法翻译」的词语。尽管如此,为了简便,这里我只将情绪分成了正面()、负面()和中立()这三类。
从下图可以看出,在所有的朋友圈中,正面和中立情绪几乎各占了一半,而负面情绪只有不到 3%。当然,这样的分类完全基于我的主观判断,不具有客观性。但可以肯定的是,负面情绪在朋友圈中是非常少见的,而这与我此前的推测一致,即在朋友圈中「积极的真实生活的记录」是受欢迎的,而带有负面情绪的内容在长期的选择过程中会被逐渐淘汰掉。
朋友圈透露出的情绪图片数量
前文提到,微信朋友圈的产品设计对图片非常友好,鼓励用户分享图片。尽管如此,我的朋友圈中,最多的还是「没有图片」,占比超过 40%,而图片最多的「九宫格朋友圈」只占 10% 左右,可能是因为挑选 9 张图片比较费时费力,而生活中大多数事情不值得这样做。除此之外,1 张图片所占的比例也相对较高,超过 20%,这类朋友大概秉持着「少即是精」的原则。
朋友圈中的图片数量分布
朋友圈中的图片数量比例点赞数量
点赞(like)最早是由 (现已改名为 Meta)发明的,被认为是 最成功、最具标志性的功能。 的点赞功能在 2009 年推出,不久之后,、 以及中文互联网上的各种社交媒体纷纷抄袭了这个功能,如今点赞已遍布互联网的各个角落。开发这一功能的主要工程师 接受 The 采访时说:
’s “like” was, says, “” : as the short-term boost they got from or , while data about the of users that could be sold to .
说, 的「点赞」功能「非常」成功:随着人们享受从给予或接受社会肯定中获得的短期激励,参与度飙升,与此同时, 收集了关于用户偏好的宝贵数据,用来出售给广告商。
在一篇研究青年女性美颜的 论文 中,作者写道:
社交媒体平台上的点赞和评论都是公开可见和量化的,因此平台上的展演者可以根据反馈来调整自己的形象,而积极的受众反馈也会增强个体的自我呈现意愿…… 除了社交媒体平台的完美形象建构仪式,还会期待着「观众」给予的掌声和称赞。「理想我」的呈现也有一部分来自于「观众」的评价和反馈,以他人的评价和点赞作为反射自我形象的一面镜子。
由此可见,在今天的互联网上,点赞数量是衡量人们在社交媒体参与过程中的重要指标之一,比如青少年会因为 的点赞而苦恼,而这严重危害了他们的 心理健康。同样作为社交媒体,微信朋友圈中的点赞自然也是如此。
从下图可以看出,在我的朋友圈中,将近 70% 是没有点赞的,而约 12% 的朋友圈有 1 个赞,点赞超过 1 个的朋友圈加起来不到 20%。之所以会有这样的结果,一个非常重要的原因是微信朋友圈是一个「半开放」的平台,只会显示双方共同联系人在朋友圈动态下的互动内容,因此,我所看见的其他人朋友圈下的点赞数量并不真实,仅能反映出我和他们共同联系人的点赞数量。
点赞数量分布
点赞数量比例
除此之外,与其他社交平台相比,微信朋友圈中的点赞成本更高——需要点击两下,首先点击右下角的两个点,然后再点击「赞」,并且没有像 等平台那样明显的视觉反馈。尽管这是一个非常细微的交互设计差异,但它会显著降低用户点赞的意愿,导致很多人在朋友圈中「惜赞如金」,无形中抬高了点赞的门槛,逐渐形成一种「少点赞」的社交礼仪。
![](http://419ai.oss-cn-beijing.aliyuncs.com/2023/07/20230726191152761.png)