violinplot能干什么?
小提琴图(violinplot)是箱线图和核密度图的合体。下面的示例均采用mpg示例库,导入代码:
import seaborn as sns
df = sns.load_dataset('mpg')
箱线图(sns.boxplot)
一个箱线图表示了一组数据的中心位置和散布范围。
sns.boxplot(x = df['origin'], y = df['mpg'])
直观上可以看出,美国车费油,日本车省油,欧洲车介于两者之间。
核密度图(sns.kdeplot)
核密度图其实是直方图的拟合。
sns.kdeplot(df['mpg'])
小提琴图
sns.violinplot(x = df['origin'], y = df['mpg'])
如何观察不同量纲的数据?
大部分情况下数据的量纲不同,观察起来很不方便,比如在mpg数据库中,mpg往往在20以下,但是weight却是数千级别的,如果在一个图中展示就难看的很:
sns.violinplot(data=df[['mpg','weight']])
这里就需要用到数据的标准化处理,比如z-score方法:
def z_score(x):
x_stats = x.describe().transpose()
return (x - x_stats['mean']) / x_stats['std']
df_normed = z_score(df)
df_normed.pop('origin')
df_normed.pop('name')
df_melted = df_normed.melt(var_name='Column', value_name='Normalized')
ax = sns.violinplot(x='Column', y='Normalized', data=df_melted)
ax.set_xticklabels(df_normed.keys(), rotation=45)
seaborn的示例数据有哪些?
seaborn的示例数据在https://github.com/mwaskom/seaborn-data,从这里可以知道,seaborn的示例数据库列表如下,在练习时完全可以选取自己熟悉的数据库:
- anagrams
- brain_networks
- dots
- fmri
- iris
- planets
- titanic
- anscombe
- car_crashes
- exercise
- gammas
- mpg
- taxis
- attention
- diamonds
- flights
- geyser
- penguins
- tips
需要注意的是,seaborn的示例数据集都比较小,不是用来训练神经网络的。
seaborn的示例数据下载不了怎么办?
seaborn的示例数据在https://github.com/mwaskom/seaborn-data,如果无法访问github就杯具了,然而这是常态。一个策略是想办法clone这个库,然后在load_dataset的时候指明是本地数据即可:
sns.load_dataset('iris', cache=True, data_home='/home/subaochen/git/seaborn-data')
其中:
- cache:表示从本地读取数据;
- data_home:本地数据所在目录;