数据分析|Python数据分析29——seaborn可视化(五)之琴形图

准备工作 先导入相关模块和数据集。

import numpy as np import pandas as pd from pandas import Series, DataFrame import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline tips = sns.load_dataset('tips') tips.head()

数据分析|Python数据分析29——seaborn可视化(五)之琴形图
文章图片

seaborn 绘制琴形图
琴形图结合了箱线图和和密度估计图的特点。可以通过videoplot() 函数来绘制琴形图。
sns.set(style='whitegrid', color_codes=True) sns.violinplot(x='day', y='total_bill', data=https://www.it610.com/article/tips)

数据分析|Python数据分析29——seaborn可视化(五)之琴形图
文章图片

下面,通过hue 参数增多一个变量来绘图。
sns.set(style='whitegrid', color_codes=True) sns.violinplot(x='day', y='total_bill', hue='time', data=https://www.it610.com/article/tips)

数据分析|Python数据分析29——seaborn可视化(五)之琴形图
文章图片

上面的图,其实并不是很直观,而且不好看。所以利用split 参数对分类数据进行切分,这样琴形图不同的颜色代表不同的类别。还可以利用inner参数对每个数据可视化,而不是只能看箱线图的哪几个统计值。
  • 创建两个子图。
sns.set(style='whitegrid', color_codes=True) fig, axes = plt.subplots(1,2,figsize=(10,5))

  • 对于左边的子图:对数据切分
sns.violinplot(x='day', y='total_bill', hue='sex', data=https://www.it610.com/article/tips, split=True, ax=axes[0])

  • 对于右边的子图:对数据切分,同时对每一个数据可视化
sns.violinplot(x='day', y='total_bill', hue='time', data=https://www.it610.com/article/tips, split=True, inner='stick', palette='Set3', ax=axes[1])

【数据分析|Python数据分析29——seaborn可视化(五)之琴形图】数据分析|Python数据分析29——seaborn可视化(五)之琴形图
文章图片

其实,分类函数是可以一起使用,这样就实现了更加强大的可视化效果。
  • 创建两个子图
sns.set(style='whitegrid', color_codes=True) fig, axes = plt.subplots(1,2,figsize=(10,5))

  • 对于左边的子图:绘制琴形图,而且inner 内部不填充
sns.violinplot(x='day', y='total_bill',data=https://www.it610.com/article/tips,inner=None,ax=axes[0])

  • 对于左边的子图:绘制分类散点图
sns.swarmplot(x='day', y='total_bill',data=https://www.it610.com/article/tips,color='w', alpha=0.5, ax=axes[0])

  • 对于右边的子图:绘制箱形图和分类散点图
sns.boxplot(x='day', y='total_bill',data=https://www.it610.com/article/tips,ax=axes[1]) sns.stripplot(x='day', y='total_bill',data=https://www.it610.com/article/tips,jitter=True, color='w', alpha=0.5, ax=axes[1])

数据分析|Python数据分析29——seaborn可视化(五)之琴形图
文章图片

    推荐阅读