**复习:**回顾学习完第一章,我们对泰坦尼克号数据有了基本的了解,也学到了一些基本的统计方法,第二章中我们学习了数据的清理和重构,使得数据更加的易于理解;今天我们要学习的是第二章第三节:数据可视化,主要给大家介绍一下Python数据可视化库Matplotlib,在本章学习中,你也许会觉得数据很有趣。在打比赛的过程中,数据可视化可以让我们更好的看到每一个关键步骤的结果如何,可以用来优化方案,是一个很有用的技巧。
2 第二章:数据可视化
开始之前,导入numpy、pandas以及matplotlib包和数据
# 加载所需的库
# 如果出现 ModuleNotFoundError: No module named 'xxxx'
# 你只需要在终端/cmd下 pip install xxxx 即可
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#加载result.csv这个数据
result = pd.read_csv("result.csv")
result.head()
Unnamed: 0 | PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 | 1 | 0 | A/5 21171 | 7.2500 | NaN | S |
1 | 1 | 2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Th... | female | 38.0 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
2 | 2 | 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.0 | 0 | 0 | STON/O2. 3101282 | 7.9250 | NaN | S |
3 | 3 | 4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35.0 | 1 | 0 | 113803 | 53.1000 | C123 | S |
4 | 4 | 5 | 0 | 3 | Allen, Mr. William Henry | male | 35.0 | 0 | 0 | 373450 | 8.0500 | NaN | S |
2.7 如何让人一眼看懂你的数据?
《Python for Data Analysis》第九章
2.7.1 任务一:跟着书本第九章,了解matplotlib,自己创建一个数据项,对其进行基本可视化
【思考】最基本的可视化图案有哪些?分别适用于那些场景?(比如折线图适合可视化某个属性值随时间变化的走势)
【总结】常见可视化图表 更多图表可参考:https://blog.youkuaiyun.com/weixin_41545602/article/details/111828028
- 柱状图
适用场景:它的适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较。
优势:柱状图利用柱子的高度,反映数据的差异。肉眼对高度差异很敏感,辨识效果非常好。
劣势:柱状图的局限在于只适用中小规模的数据集。 - 折线图
适用场景: 折线图适合二维的大数据集,尤其是那些趋势比单个数据点更重要的场合。它还适合多个二维数据集的比较。
优势:容易反应出数据变化的趋势。 - 饼图
适用场景:适用简单的占比图,在不要求数据精细的情况下可以适用。
优势:可以直观观察到各部分占比情况。
劣势:饼图是一种应该避免使用的图表,因为肉眼对面积大小不敏感。
【注】最好的做法是从12点方向开始,顺时针按份额大小排列。 - 漏斗图
适用场景:漏斗图适用于业务流程比较规范、周期长、环节多的流程分析,通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在。
优势:能够直观地发现和说明问题所在。在网站分析中,通常用于转化率比较,它不仅能展示用户从进入网站到实现购买的最终转化率,还可以展示每个步骤的转化率。
劣势:单一漏斗图无法评价网站某个关键流程中各步骤转化率的好坏。 - 地图
适用场景:适用于有空间位置的数据集。
优劣势:特殊状况下使用。 - 雷达图
适用场景:雷达图适用于多维数据(四维以上),且每个维度必须可以排序。但是,它有一个局限,就是数据点最多6个,否则无法辨别,因此适用场合有限。
劣势:需要注意的时候,用户不熟悉雷达图,解读有困难。使用时尽量加上说明,减轻解读负担。
【注】可视化图表使用的注意事项
- 在折线图中使用虚线。虚线会让人分心,用实线搭配合适的颜色更容易区分。
- 数据被遮盖。确保数据不会因为设计而丢失或被覆盖。例如在面积图中使用透明效果来确保用户可以看到全部数据。
- 耗费用户更多的精力。通过辅助的图形元素来使数据更易于理解,比如在散点图中增加趋势线。
- 柱状过宽或过窄。柱子的间隔最好调整为宽的1/2。
- 数据对比困难。选择合适的图表,让数据对比更明显直接。
- 错误呈现数据。
- 数据没有很好归类,没有重点区分。将同类数据归类,简化色彩,帮助用户更快理解数据。
- 误导用户的图表。要客观反映真实数据,纵坐标不能被截断,否则视觉感受和实际数据相差很大。
【参考】https://nn.sumaart.com/share/119.html
2.7.2 任务二:可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)。
**matplotlib.pyplot.bar(x,height, width,*,align=‘center’,kwargs)
参数:
- x:包含所有柱子的下标的列表
- height:包含所有柱子的高度值的列表
- width:每个柱子的宽度。可以指定一个固定值,那么所有的柱子都是一样的宽。或者设置一个列表,这样可以分别对每个柱子设定不同的宽度。
- align:柱子对齐方式,有两个可选值:center和edge。center表示每根柱子是根据下标来对齐, edge则表示每根柱子全部以下标为起点,然后显示到下标的右边。如果不指定该参数,默认值是center。
其他可选参数:
- color:每根柱子呈现的颜色。同样可指定一个颜色值,让所有柱子呈现同样颜色;或者指定带有不同颜色的列表,让不同柱子显示不同颜色。
- edgecolor:每根柱子边框的颜色。同样可指定一个颜色值,让所有柱子边框呈现同样颜色;或者指定带有不同颜色的列表,让不同柱子的边框显示不同颜色。
- linewidth:每根柱子的边框宽度。如果没有设置该参数,将使用默认宽度,默认是没有边框。
- tick_label:每根柱子上显示的标签,默认是没有内容。