**复习:**回顾学习完第一章,我们对泰坦尼克号数据有了基本的了解,也学到了一些基本的统计方法,第二章中我们学习了数据的清理和重构,使得数据更加的易于理解;今天我们要学习的是第二章第三节:数据可视化 ,主要给大家介绍一下Python数据可视化 库Matplotlib,在本章学习中,你也许会觉得数据很有趣。在打比赛的过程中,数据可视化可以让我们更好的看到每一个关键步骤的结果如何,可以用来优化方案,是一个很有用的技巧。
开始之前,导入numpy、pandas以及matplotlib包和数据
import numpy as np
import pandas as pd
import matplotlib. pyplot as plt
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.csdn.net/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:每根柱子上