准备工作 先导入相关模块和数据集。
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()
文章图片
seaborn 绘制琴形图
琴形图结合了箱线图和和密度估计图的特点。可以通过videoplot() 函数来绘制琴形图。
sns.set(style='whitegrid', color_codes=True)
sns.violinplot(x='day', y='total_bill', data=https://www.it610.com/article/tips)
文章图片
下面,通过hue 参数增多一个变量来绘图。
sns.set(style='whitegrid', color_codes=True)
sns.violinplot(x='day', y='total_bill', hue='time', data=https://www.it610.com/article/tips)
文章图片
上面的图,其实并不是很直观,而且不好看。所以利用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可视化(五)之琴形图】
文章图片
其实,分类函数是可以一起使用,这样就实现了更加强大的可视化效果。
- 创建两个子图
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])
文章图片
推荐阅读
- 算法|opencvcv4.0
- 「Python」面向对象封装案例1——小夏爱跑步、案例扩展(多个对象之间属性互不干扰)
- python|安装pytorch
- 深度学习|【深度学习-吴恩达】L1-4 深层神经网络
- 深度学习|2. 刘二大人《PyTorch深度学习实践》作业--梯度下降
- 连续学习|图解连续学习中的蓄水池抽样算法(The Illustrated Reservoir sampling)
- 我的教程|Python 快速规范代码
- 精简|精简 opencv python_01_opencv_python_基本图像处理
- python|Keras实现——预训练卷积神经网络(VGG16)