一篇文章来告诉你可视化是多么重要
總第199篇/張俊紅
今天這一篇文章希望通過一個例子來告訴大家可視化或者說繪圖是多么重要。在1973年,統(tǒng)計學(xué)家F.J. Anscombe造了四組非常神奇的數(shù)字,這四組數(shù)字具體有多神奇呢?就是均值、方差、相關(guān)性都一樣,但是分布卻完全不一樣。接下來我們來具體看看:
首先將這份數(shù)據(jù)加載進(jìn)來,并進(jìn)行格式調(diào)整,
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"])最后可以得到如下所示的結(jié)果數(shù)據(jù),這就是傳說中的那四組神奇的數(shù)字:
x_I 和 y_I是一組數(shù)據(jù)、 x_II 和 y_II是一組數(shù)據(jù), x_III 和 y_III是一組數(shù)據(jù), x_IV 和 y_IV是一組數(shù)據(jù),我們可以看到這四組數(shù)據(jù)是完全不一樣的。
在數(shù)據(jù)分析中,我們平常拿到一個表以后,可能會使用describe函數(shù)去看不同指標(biāo)的一個整體情況,那我們這里也用describe()看一下結(jié)果:
df_describe?=?df3_4.describe()[['x_I','x_II','x_III','x_IV','y_I',?'y_II',?'y_III','y_IV']] df_describe運行上面的代碼就可以得到不同指標(biāo)的一個整體描述情況,具體結(jié)果如下:
我們可以看到x_I、x_II、x_III、x_IV這四個指標(biāo)的均值和標(biāo)準(zhǔn)差是完全一樣的,y_I、y_II、y_III、y_IV這四個指標(biāo)的均值和標(biāo)準(zhǔn)差也是完全一樣的(忽略小數(shù)點差異),幾列完全不同的值,均值和標(biāo)準(zhǔn)差竟然會完全一樣,這還不是最神奇的,我們接著往下看。
describe只是告訴你單個指標(biāo)的一個情況,我們有的時候還需要看一下不同指標(biāo)之間的相關(guān)性情況,運行如下代碼:
df3_4.corr()運行上面的代碼,可以得到指標(biāo)兩兩之間相關(guān)性情況,我們可以看到四組的相關(guān)性系數(shù)也基本相同(忽略小數(shù)點差異)。
完全不同的幾組數(shù)據(jù),均值、標(biāo)準(zhǔn)差、相關(guān)性可以完全一樣,這還不是最神奇的,接下來要見證最神奇的事情了,那就是可視化繪圖,代碼如下:
import?matplotlib.pyplot?as?plt plt.rcParams["font.sans-serif"]='SimHei'#解決中文亂碼 plt.rcParams['axes.unicode_minus']?=?False#解決負(fù)號無法正常顯示的問題 plt.figure(figsize?=?(9,9)) plt.subplot(221) plt.scatter(x?=?df1["x"],y?=?df1["y"]) plt.title("I型數(shù)據(jù)")plt.subplot(222) plt.scatter(x?=?df2["x"],y?=?df2["y"]) plt.title("II型數(shù)據(jù)")plt.subplot(223) plt.scatter(x?=?df3["x"],y?=?df3["y"]) plt.title("III型數(shù)據(jù)")plt.subplot(224) plt.scatter(x?=?df4["x"],y?=?df4["y"]) plt.title("IV型數(shù)據(jù)")運行上面的代碼可以得到如下結(jié)果:
看這四組的散點圖,是不是完全不一樣,這就是最神奇之處。也是我們本篇文章要告訴大家的核心,可視化是多么重要,如果不做散點圖,我們怎么也不會想到這四組之間的實際分布相差會這么大。
總結(jié)
以上是生活随笔為你收集整理的一篇文章来告诉你可视化是多么重要的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 释放更多创意潜能 iPad版Final
- 下一篇: 读书笔记 —《钱从哪里来》