前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一篇文章来告诉你可视化是多么重要

一篇文章来告诉你可视化是多么重要

作者头像
张俊红
发布2020-03-31 16:36:32
4300
发布2020-03-31 16:36:32
举报
文章被收录于专栏:张俊红

总第199篇/张俊红

今天这一篇文章希望通过一个例子来告诉大家可视化或者说绘图是多么重要。在1973年,统计学家F.J. Anscombe造了四组非常神奇的数字,这四组数字具体有多神奇呢?就是均值、方差、相关性都一样,但是分布却完全不一样。接下来我们来具体看看:

首先将这份数据加载进来,并进行格式调整,

代码语言:javascript
复制
import seaborn as sns
anscombe = sns.load_dataset("anscombe")

df1 = anscombe[anscombe["dataset"] == 'I'].reset_index().drop(["index","dataset"],axis = 1)
df2 = anscombe[anscombe["dataset"] == 'II'].reset_index().drop(["index","dataset"],axis = 1)
df3 = anscombe[anscombe["dataset"] == 'III'].reset_index().drop(["index","dataset"],axis = 1)
df4 = anscombe[anscombe["dataset"] == 'IV'].reset_index().drop(["index","dataset"],axis = 1)

df1_2 = pd.merge(df1,df2,left_index = True,right_index = True,suffixes = ["_I","_II"])
df2_3 = pd.merge(df1_2,df3,left_index = True,right_index = True)
df3_4 = pd.merge(df2_3,df4,left_index = True,right_index = True,suffixes = ["_III","_IV"])

最后可以得到如下所示的结果数据,这就是传说中的那四组神奇的数字:

x_I 和 y_I是一组数据、 x_II 和 y_II是一组数据, x_III 和 y_III是一组数据, x_IV 和 y_IV是一组数据,我们可以看到这四组数据是完全不一样的。

在数据分析中,我们平常拿到一个表以后,可能会使用describe函数去看不同指标的一个整体情况,那我们这里也用describe()看一下结果:

代码语言:javascript
复制
df_describe = df3_4.describe()[['x_I','x_II','x_III','x_IV','y_I', 'y_II', 'y_III','y_IV']]
df_describe

运行上面的代码就可以得到不同指标的一个整体描述情况,具体结果如下:

我们可以看到x_I、x_II、x_III、x_IV这四个指标的均值和标准差是完全一样的,y_I、y_II、y_III、y_IV这四个指标的均值和标准差也是完全一样的(忽略小数点差异),几列完全不同的值,均值和标准差竟然会完全一样,这还不是最神奇的,我们接着往下看。

describe只是告诉你单个指标的一个情况,我们有的时候还需要看一下不同指标之间的相关性情况,运行如下代码:

代码语言:javascript
复制
df3_4.corr()

运行上面的代码,可以得到指标两两之间相关性情况,我们可以看到四组的相关性系数也基本相同(忽略小数点差异)。

完全不同的几组数据,均值、标准差、相关性可以完全一样,这还不是最神奇的,接下来要见证最神奇的事情了,那就是可视化绘图,代码如下:

代码语言:javascript
复制
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]='SimHei'#解决中文乱码
plt.rcParams['axes.unicode_minus'] = False#解决负号无法正常显示的问题
plt.figure(figsize = (9,9))
plt.subplot(221)
plt.scatter(x = df1["x"],y = df1["y"])
plt.title("I型数据")

plt.subplot(222)
plt.scatter(x = df2["x"],y = df2["y"])
plt.title("II型数据")

plt.subplot(223)
plt.scatter(x = df3["x"],y = df3["y"])
plt.title("III型数据")

plt.subplot(224)
plt.scatter(x = df4["x"],y = df4["y"])
plt.title("IV型数据")

运行上面的代码可以得到如下结果:

看这四组的散点图,是不是完全不一样,这就是最神奇之处。也是我们本篇文章要告诉大家的核心,可视化是多么重要,如果不做散点图,我们怎么也不会想到这四组之间的实际分布相差会这么大。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档