首先,向奋战在前线的医护人员、科研人员和政府机关致敬!
阅读提示
本文将使用Python及Tableau实现疫情数据可视化,让你不在面对密密麻麻的数字和家长轮番的谣言轰炸。
前景提要
因为他们的不懈努力,目前疫情已经有所好转。疫情当下,全民成厨子了,医护成战士了,老师成主播了,公务员成门卫了,家长成监考老师了……只有孩子们依然是神兽,以前看手机跟做贼似的,现在也光明正大了,就连不爱鼓捣手机的老人们也开始“赶时髦”了。从刚开始的孩子劝家长戴口罩劝不通,到后来的老人家长们疯狂的往群里发谣言、假新闻等等… 影响他们判断的因素不单单只有他们单一的交际圈,更是因为他们已经接近于“out”了!很多我们年轻人一眼看过去就知道是微商的宣传题材、标题党等文章在老人们眼中就成了心灵鸡汤,赶紧点赞转发呼吁我们看看这篇“好文”。
而我在家躲避疫情的这段时间里,也受到了家庭群里谣言的狂轰滥炸:
比如上面这张图 ,我看到这段文字我内心简直是崩溃的,我的表情就和我的输入法这只鸭子是一样样的!(这tm是什么?这一大段文案没有任何数据也有人信?…)
再比如这样子:
面对我的辟谣,老人们反而情绪更加激动了,我很理解他们渴望关注疫情并且及时推荐给家人了解,但有些媒体和标题党正式借用了他们这种为家人、为朋友的出发点不停地蹭热度、散播谣言。在经过一个多月的谣言轰炸后,我终于坐(烦)不(死)住了!我决定来点实际的给家人们科普一下,什么是真正的新闻,什么是谣言。
1、数据的来源
这里我使用的是 腾讯较真平台(https://vp.fact.qq.com/home),在这里实时更新一些近期的谣言,并对它进行求真,这正是我所需要的!那么我们开始操作。
2、观察页面元素:
可以看到,我所需要的谣言文案,以及他的判定类型 是否为谣言、是否为不科学求证等通通以文本形式出现,这就好办了。
3、爬取数据
这里直接给出谣言数据的爬取方式:
import requests
import pandas as pd
class SpiderRumor(object):
def __init__(self):
self.url = "https://vp.fact.qq.com/loadmore?artnum=0&page=%s"
self.header = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
}
def spider_run(self):
for url in [self.url % i for i in range(30)]:
data_list = requests.get(url, headers=self.header).json()["content"]
temp_data = [[df["标题"], df["日期"], df["判断结果"], df["解释"], df["关键字"]] for df in data_list]
df_all.extend(temp_data)
print(temp_data[0])
pd.DataFrame(df_all, columns=["标题", "日期", "判断结果", "解释", "关键字"]).to_csv("谣言数据.csv", encoding="utf_8_sig")
if __name__ == '__main__':
spider = SpiderRumor()
spider.spider_run()
我们可以看一下效果图:
本地生成的文件:
4、对数据进行操作
首先,我们读取一下文件,可以看到截止至2020年2月15日,已经有600条谣言了!
5、绘制折线图:
在这里想要使用折线图达到可视化每天有多少条谣言产生,由于篇幅不够我们只截取部分数据
可以看到在2020年1月25日、26日时出现了最大值,查看日历后发现1月25日时正月初一,也就是我们的春节,为什么在这一天谣言会出现这么多条呢?我想可能是大家都在家中,并且在当时各地已经出现了疫情,大家在欢度春节的时候同时也有些后怕,茶余饭后的闲聊可能就成了各大微信群、公众号、微博等散步出去的谣言了,很有可能将多年前不知道什么时候的图片拿出来当做是近期的事情,从而一传十,十传百越传越多。在2月10日左右每天的谣言数目已经出现看明显的下降,可能是因为部分企业开始实行网上办公、学校开展网上教学等措施,使得本来在家闲到发慌的人们开始忙碌起来,也就不那么关注谣言了。
我们来关注一下大家在过年这两天都在传播什么谣言吧
可以看到,在这几天里大部分消息都是关于封锁城市、或者是禁止出门等谣言,这些内容里有真的也有假的,最为可恶的就是 ‘ 钟南山院士被感染’ ,这种借着钟南山院士的名号无脑蹭热度甚至制造恐慌的人是真的可恶!
钟老的贡献是有里程碑意义的,无论是以前的SARS还是现在的肺炎,都离不开钟南山院士不懈的努力与付出!我们应对钟老表达出崇高的敬意,不散布谣言,不轻信谣言!
6、绘制饼图:
那么出现了如此多的谣言,人心惶惶的同时,经过央视新闻、各大理性公众号、微博大V等人的辟谣后,又有多少传播在人群中的谣言是真的呢?有多少是假的呢?
绘制饼图
data = pd.read_csv("谣言数据.csv")
labels = data["explain"].value_counts().index.tolist() #可以理解为每个文本
sizes = data["explain"].value_counts().values.tolist() #可以理解为筛选出每个文本所对应的出现次数
colors = ['lightgreen', 'gold', 'lightskyblue', 'lightcoral']
plt.figure(figsize=(18,10))
plt.pie(sizes, labels=labels,
colors=None, autopct='%1.1f%%', shadow=True,explode=(0.1,0.1,0,0,0,0,0,0,0,0),textprops={'fontsize':15,'color':'black'}) # shadow=True 表示阴影
plt.axis('equal') # 设置为正的圆形
plt.legend(loc = 'upper right',ncol = 2)
plt.show()
我们可以在图中清楚地看到,人们传播的文案中,有66.7%的属于真正的谣言!无中生有,并且歪曲事实,给无辜的吃瓜群众们带来了很大的恐慌,而还有14.3%的人(我猜测可能是某不知名公众号、某不知名医生)散播出来的伪科学,比如 ‘多吃梨有助于缓解疫情’ ‘戴隐形眼镜会增加感染新冠病毒的几率’ 等等十分有争议性但又贴近生活的例子,正是这些贴近我们的例子才使得众多惜命人士、以及老一辈的家长们失去了理性的判断力,从而一次又一次的转发着这些“博眼球、博热度”的谣言。
7、绘制气泡图
那么究竟传播的是些什么谣言呢?传播的内容又是什么的?这我我将通过气泡图来展示部分谣言的类型:
在图中我们可以看到,有多数都是直接关于疫情以及肺炎传播的,比如前阵子传的沸沸扬扬的 ‘普通人出门要佩戴护目镜,防止新型冠状病毒侵入体内’ ‘口罩正确戴法:感冒时有颜色的朝外,没感冒反过来’ 等等,还有一些关于喝白酒可以预防疫情啊、口罩必须使用一次就丢掉等各种稀奇古怪的谣言在网络当中不停地传播着,而我们要做的就是:不信谣,不传谣,不出门,不添乱。
总结
在文章的末尾,附上一张当前疫情实时数据,中国加油,武汉加油!
喝白酒可以预防疫情啊、口罩必须使用一次就丢掉等各种稀奇古怪的谣言在网络当中不停地传播着,而我们要做的就是:不信谣,不传谣,不出门,不添乱。
在文章的末尾,附上一张当前疫情实时数据,中国加油,武汉加油!