1、饼图 (pandas)
用于分析一种特征中两种数值所占比例。
train_data['Survived'].value_counts().plot.pie(autopct='%1.2f%%')
2、柱状图(pandas)
分析两维特征间的关系。
train_data[['Sex', 'Survived']].groupby(['Sex']).mean().plot.bar()
sns的柱状图(pandas)
sns.countplot('Embarked', hue='Survived', data=train_data)
3、直方图(pandas)
是一种可视化在连续间隔,或者是特定时间段内数据分布情况的图表。直方图描述的是一组数据的频次分布。
柱状图展示的不同分类的数量分布。
train_data['Age'].hist(bins=70)
bins,数据划分的份数。
sns提供的直方图 (pandas, seaborn)
average_data = train_data[['age_int', 'Survived']].groupby('age_int', as_index=False).mean() sns.barplot(x='age_int', y='Survived', data=average_data)
5、琴图 (seaborn)
在柱状图的基础上,琴图展示的内容可以更加丰富,可以同时展示三个数值间的关系。下图展示了不同Pclass下的不同年龄的生还和死亡的人数的比例。
琴图的黑线上,同时可以看到年龄的分布,黑线上粗线的两端表示年龄的最小和最大值,白色的点表示年龄的平均值。
用于分析这里使用seaborn(matplotlib的一个扩展库)
import seaborn as sns sns.violinplot('Pclass', 'Age', hue='Survived', data=train_data, split=True, ax=ax[0])
6、箱型图 (pandas)
箱型图和琴图中的黑线表示类似。
a) 箱图的上下连个黑线:最小和最大值。
b) 中间方框的上下边缘:上四分位数和下四分位数。
c) 绿线:中位数
d) 圆点:异常值
showfilters,是否展示异常值。
train_data.boxplot(column='Age', showfliers=False)
train_data.boxplot(column='Fare', by='Pclass', showfliers=True)
7、密度图 (seaborn)
facet = sns.FacetGrid(train_data, hue='Survived', aspect=4) # kdeplot,密度图 facet.map(sns.kdeplot, 'Age', shade=True)