Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
data8-textbook-zh
提交
2b640a7b
D
data8-textbook-zh
项目概览
OpenDocCN
/
data8-textbook-zh
大约 1 年 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
data8-textbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2b640a7b
编写于
11月 15, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ch6.
上级
55067fac
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
156 addition
and
0 deletion
+156
-0
6.md
6.md
+156
-0
未找到文件。
6.md
浏览文件 @
2b640a7b
...
...
@@ -478,3 +478,159 @@ bin_counts.hist('Adjusted Gross count', bin_column='bin', unit='Million Dollars'
### 纵轴:密度刻度
一旦我们已经照顾到细节,如桶的末端,直方图的横轴易于阅读。 纵轴的特征需要更多关注。 我们会一一讲解。
我们先来看看如何计算垂直轴上的数字。 如果计算看起来有些奇怪,请耐心等待 - 本节的其余部分将解释原因。
计算。每个条形的高度是桶中的元素的百分比,除以桶的宽度。
> 译者注:存在很多种直方图,比如频数直方图、频率质量直方图和频率密度直方图。它们的纵轴数值不相同,但是图形形状是一样的。这里是最后一种,频率密度直方图。
```
py
counts
=
bin_counts
.
relabeled
(
'Adjusted Gross count'
,
'Count'
)
percents
=
counts
.
with_column
(
'Percent'
,
(
counts
.
column
(
'Count'
)
/
200
)
*
100
)
heights
=
percents
.
with_column
(
'Height'
,
percents
.
column
(
'Percent'
)
/
100
)
heights
```
| bin | Count | Percent | Height |
| --- | --- | --- | --- |
| 300 | 81 | 40.5 | 0.405 |
| 400 | 52 | 26 | 0.26 |
| 500 | 28 | 14 | 0.14 |
| 600 | 16 | 8 | 0.08 |
| 700 | 7 | 3.5 | 0.035 |
| 800 | 5 | 2.5 | 0.025 |
| 900 | 3 | 1.5 | 0.015 |
| 1000 | 1 | 0.5 | 0.005 |
| 1100 | 3 | 1.5 | 0.015 |
| 1200 | 2 | 1 | 0.01 |
(省略了 8 行)
在上面直方图的纵轴上查看数字,检查列高度是否正确。
如果我们只查看表格的第一行,计算就会变得清晰。
请记住,数据集中有 200 部电影。这个
`[300,400)`
的桶包含 81 部电影。这是所有电影的 40.5%:!
[](
https://www.zhihu.com/equation?tex=%5Cmbox%7BPercent%7D%20%3D%20%5Cfrac%7B81%7D%7B200%7D%20%5Ccdot%20100%20%3D%2040.5
)
。
`[300, 400)`
桶的宽度是
`400-300 = 100`
。所以 !
[](
https://www.zhihu.com/equation?tex=%5Cmbox%7BHeight%7D%20%3D%20%5Cfrac%7B40.5%7D%7B100%7D%20%3D%200.405
)
。
用于计算高度的代码使用了总共有 200 个电影,以及每个箱的宽度是 100 的事实。
单位。条形的高度是 40.5% 除以 1 亿美元,因此高度是 0.405% 每百万美元。
这种绘制直方图的方法创建了一个垂直轴,它是在密度刻度上的。条形的高度不是桶中条目的百分比;它是桶中的条目除以桶的宽度。这就是为什么高度衡量拥挤度或密度。
让我们看看为什么这很重要。
### 不等的桶
直方图相比条形图的一个优点是,直方图可以包含不等宽度的桶。 以下将
`Millions `
中的值分为三个不均匀的类别。
```
py
uneven
=
make_array
(
300
,
400
,
600
,
1500
)
millions
.
hist
(
'Adjusted Gross'
,
bins
=
uneven
,
unit
=
"Million Dollars"
)
```
这里是三个桶中的数量。
```
py
millions
.
bin
(
'Adjusted Gross'
,
bins
=
uneven
)
```
| bin | Adjusted Gross count |
| --- | --- |
| 300 | 81 |
| 400 | 80 |
| 600 | 37 |
| 1500 | 0 |
虽然范围
`[300,400)`
和
`[400,600)`
具有几乎相同的计数,但前者的高度是后者的两倍,因为它只有一半的宽度。
`[300,400)`
中的值的密度是
`[400,600)`
中的密度的两倍。
直方图帮助我们可视化数轴上数据最集中的地方,特别是当桶不均匀的时候。
### 仅仅绘制数量的问题
可以使用
`hist`
方法的
`normed=False`
选项直接在图表中显示数量。 生成的图表与直方图具有相同的形状,但这些桶的宽度均相等,尽管纵轴上的数字不同。
```
py
millions
.
hist
(
'Adjusted Gross'
,
bins
=
np
.
arange
(
300
,
2001
,
100
),
normed
=
False
)
```
虽然数量刻度可能比密度刻度更自然,但当桶宽度不同时,图表高度的有误导性。 下面看起来(由于计数)高收入电影相当普遍,事实上我们已经看到它们相对较少。
```
py
millions
.
hist
(
'Adjusted Gross'
,
bins
=
uneven
,
normed
=
False
)
```
即使使用的方法被称为
`hist`
,上面的图不是一个直方图。 误导性地夸大了至少 6 亿美元的电影比例。 每个桶的高度只是按照桶中的电影数量绘制,而不考虑桶宽度的差异。
如果最后两个桶组合起来,情况就变得更加荒谬了。
```
py
very_uneven
=
make_array
(
300
,
400
,
1500
)
millions
.
hist
(
'Adjusted Gross'
,
bins
=
very_uneven
,
normed
=
False
)
```
在这个基于数量的图像中,电影分布完全失去了形状。
### 直方图:通用原则和计算
上图显示,眼睛将面积视为“较大”的东西,而不是高度。当桶的宽度不同时,这种观察变得尤为重要。
这就是直方图具有两个定义属性的原因:
+
桶按比例绘制并且是连续的(尽管有些可能是空的),因为横轴上的值是数值型的。
+
每个条形的面积与桶中的条目数成比例。
属性(2)是绘制直方图的关键,通常实现如下:
```
条形的面积 = 桶中条目的百分比
```
高度的计算仅仅使用了一个事实,条形是长方形的。
```
条形的面积 = 条形的高度 * 桶的宽度
```
因此,
```
条形的高度 = 条形的面积 / 桶的宽度
= 桶中条目的百分比 / 桶的宽度
```
高度的单位是“百分比每横轴单位”。
当使用这种方法绘制时,直方图被称为在密度刻度上绘制。 在这个刻度上:
+
每个条形的面积等于相应桶中的数据值的百分比。
+
直方图中所有条形的总面积为 100%。 从比例的角度来讲,我们说直方图中所有条形的面积“总计为 1”。
### 平顶和细节水平
即使密度刻度使用面积正确表示了百分比,但是通过将值分组到桶中,丢失了一些细节。
再看一下下图中的
`[300,400)`
的桶。 值为“0.405% 每百万美元”的桶的平顶,隐藏了电影在这个桶分布有些不均匀的事实。
```
py
millions
.
hist
(
'Adjusted Gross'
,
bins
=
uneven
,
unit
=
"Million Dollars"
)
```
为了看到它,让我们将
`[300, 400)`
划分为更窄的 10 个桶。每个桶的宽度都是一千万美元。
```
py
some_tiny_bins
=
make_array
(
300
,
310
,
320
,
330
,
340
,
350
,
360
,
370
,
380
,
390
,
400
,
600
,
1500
)
millions
.
hist
(
'Adjusted Gross'
,
bins
=
some_tiny_bins
,
unit
=
'Million Dollars'
)
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录