程序员

数据分析50图(一) —— 序幕

2019-03-27  本文已影响0人  iced_fd13

前言

华罗庚说过

数缺形时少直观,形少数时难入微.

这句话第一次听还是初中数学老师上二次方程课时说的.

最近看到了3blue1brown对线性代数的直观解释感觉豁然开朗,于是我又捡起了儿时对美妙数学的兴趣. 发现一个博客,数据可视化很好的例子,决定花些时间和大家一起解读一下

例程来自:https://www.machinelearningplus.com/plots/matplotlib-histogram-python-examples//

感谢b站UP "菜菜TsaiTsai" 分享这个博客.

在正式开始“50图”的学习前先引出2个前例,目的是提醒自己。学会是从有限的例子中推论出没有见过的问题的答案。这也是2000年前对孔子对学会的理解“温故而知新,可以为师已”

前例1

import numpy as np
x = np.random.randint(low=0, high=100, size=100)

# Compute frequency and bins
frequency, bins = np.histogram(x, bins=10, range=[0, 100])

# Pretty Print
for b, f in zip(bins[1:], frequency):
print(round(b, 1), ' '.join(np.repeat('*', f)))

解析

首先在0-100里产生一些随机的整数 histogram 直方图统计函数:

最后画出来像是这样


微信截图_20190327135305.png

应用

事实上,我们生活中更多的用的直方图,或是折现图往往表示一个趋势的记录。比如房价走势

房价走势.jpg

我们直觉上总是更容易理解时间相关的表达。因为我的大脑的生产逻辑是基于过去的经验的。引用一句名言“你用永远成为不了你没见过的人。” 不过科学家们,特别是物理学家们,更常用另一种表达方式就是本例中的计次,他事实上是一种时频域转换,这在许多问题是非常有效,我们继续看下去。

前例2

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Plot Histogram on x
x = np.random.normal(size = 1000)
plt.hist(x, bins=50)
plt.gca().set(title='Frequency Histogram', ylabel='Frequency');

解析

微信截图_20190327141933.png

应用

不得不说,我们人类的构造就是适合处理这些颜色和形状,我们会不自觉的把目光投降这些有规律的色块,就行我们看一幅美术作品一样

来想一想这中频次图,适合表达什么?

比如同一时间下,不同地区的房价,我们可以想象,主城区不少房子价值高昂但是黄金地段有些数量不会太多,这些房子出现在上图的右边。而稍远一些的大部分房子在横轴的0值附件。这里我们举了一个例子,那么我们倒过来想一下,一个现象符合某种条件规律,反过来某个条件能否推出一个现象?

上例我们知道不同地区房价不同,反过来,根据房价不同不就能知道房子的地段的了吗?当然这里有个前提,这种关系需要是对应的。就想数学中的函数与反函数 。可以科学实验中的常用手段。观察现象、总结规律,然后得到背后的结论。

下期预告

图1 散点图

上一篇 下一篇

猜你喜欢

热点阅读