violinplot能干什么?

小提琴图(violinplot)是箱线图和核密度图的合体。下面的示例均采用mpg示例库,导入代码:

import seaborn as sns
df = sns.load_dataset('mpg')

箱线图(sns.boxplot)

一个箱线图表示了一组数据的中心位置和散布范围。

sns.boxplot(x = df['origin'], y = df['mpg'])

img

直观上可以看出,美国车费油,日本车省油,欧洲车介于两者之间。

核密度图(sns.kdeplot)

核密度图其实是直方图的拟合。

sns.kdeplot(df['mpg'])

img

小提琴图

sns.violinplot(x = df['origin'], y = df['mpg'])

img

如何观察不同量纲的数据?

大部分情况下数据的量纲不同,观察起来很不方便,比如在mpg数据库中,mpg往往在20以下,但是weight却是数千级别的,如果在一个图中展示就难看的很:

sns.violinplot(data=df[['mpg','weight']])

img

这里就需要用到数据的标准化处理,比如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)

img

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:本地数据所在目录;