python数据可视化seaborn(四)—— 分类数据可视化

本文介绍了seaborn库在处理分类数据可视化时的方法,包括分类散点图、分类分布图(箱线图、提琴图)以及统计图。详细解析了stripplot、boxplot、violinplot和barplot等函数的参数和用法,帮助读者理解如何利用seaborn进行高效的数据可视化。

之前的文章关注的是两个变量都是数值变量的情况,当有一个变量是分类变量的时候,我们就需要其他类型的图形来展示分析数据。在seaborn中有多种类型的图形且非常易于上手。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

sns.set(style="whitegrid",font_scale=1.4,context="paper")
# 设置风格、尺度
import warnings
warnings.filterwarnings('ignore') 
# 不发出警告

seaborn中,分类图主要分为三个部分:

  • 分类散点图:
    • stripplot(默认,kind = “strip”)
    • swarmplot(kind = “swarm”)
  • 分类分布图:
    • boxplot(kind=“box”)
    • violinplot(kind=“violin”)
    • boxenplot(kind=“boxen”)
  • 分类估计图:
    • pointplot(kind=“point”)
    • barplot(kind=“bar”)
    • countplot(kind=“count”)

以上三种系列分别代表了不同粒度级别的数据。当然,在实际使用的过程中,其实没有必要记住这么多,因为seaborn中的分类系列有统一的图形界面catplot(),只需要这一个函数,就能访问所有分类图像类型。

分类散点图

seaborn.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=True, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor=‘gray’, linewidth=0, ax=None, **kwargs)

  • jitter : 是否抖动,True,false or float
  • dodge : 当有hue参数时,是否沿轴分离不同颜色
  • orient : 图形方向,垂直(“v”)或者水平(“h”)
# 1、catplot()  默认情况下,kind='strip'
# 按照不同类别对样本数据进行分布散点图绘制

tips = sns.load_dataset("tips")
print(tips.head())
# 加载数据

sns.catplot(x="day",          # x → 设置分组统计字段
            y="total_bill",   # y → 数据分布统计字段
            # 这里xy数据对调,将会使得散点图横向分布
            data=tips,        # data → 对应数据
            jitter = True, height=6,   
            #当点数据重合较多时,jitter可以控制点抖动,也可以设置间距如:jitter = 0.1
            s = 6, edgecolor = 'w',linewidth=1,marker = 'o' , 
            # 设置点的大小、描边颜色或宽度、点样式
            )
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

在这里插入图片描述

# 1、stripplot()
# 通过kind='swarm' 来调整点防止重合

sns.catplot(x="day", y="total_bill",kind='swarm',
              hue='sex',data=tips,height=5,s=5.5)
# 通过让点沿轴分布来防止重合,这只使用与较小数据集

在这里插入图片描述

# 1、stripplot()
# 设置调色盘

sns.catplot(x="sex", y="total_bill", hue="day",
              data=tips, jitter=True,
              palette="Set2",  # 设置调色盘
              dodge=True,  # 是否拆分
             )

关于libsvm分类结果可视化分类曲线的可视化-加权SVM相关论文.rar 关于libsvvm分类结果可视化分类曲线的可视化  by faruto 论坛里曾有多位朋友询问过,有关libsvvm分类结果可视化分类曲线的可视化(可能大家感觉这个放在自己的paper里面会比较拉风,个人感觉可视化这些东西真的很虚幻,看着拉风,实则无用)。整体过程我心中明了,但实在是对可视化这种东西的鄙视,所以一直未将关于libsvm分类结果可视化分类曲线的可视化结果实现,并以插件函数的形式放在自己的faruto -libsvm工具箱里面。 本质其实就是用contour来实现。 今天下午把科学社会主义理论 翘掉了【我还记得代课老师说让大家查看一下科学社会主义理论和空想社会主义的区别。囧!】。在宿舍搞了一下。 原本想法是要搞就搞高级一点的,想把对于任意维的测试数据的任意两维(或任意三维)进行可视化,并给出分类超曲面,但最终未果,无法实现。【具体原因我就不说了,深入想过这个的应该会明的。】 【搞的我从下午一直搞到 晚上六点,晚饭都没吃,就直接去上的 《概率论的数学基础》课。囧!】你别看代码就几行。但里面的想法挺巧妙的。。 所以,我在这里要说的是,下面的函数插件 svmplot.m 只对两分类,且属性数据是两维的,给出的分类结果可视化分类曲线的可视化才是有意义和准确的。对于不是两分类或属性数据不是两维的,我这个也可以给出个图,但那个的没有实际意义!切记!!切记!! {近期还想弄的就是专门对于 un-balanced data的处理的函数插件。!} 测试图: 1.jpg 代码:要的直接拿去【拿去在paper里面拉风吧!】。放在libsvm -faruto版本里面就能直接用。function svmplot % svmplot by faruto % 2009.12.03 % Email:patrick.lee@foxmail.com QQ:516667408 if nargin == 3     demension1 = 1;     demension2 = 2; end %% minX = min); maxX = max); minY = min); maxY = max); gridX = ./ 100; gridY = ./ 100; minX = minX - 10 * gridX; maxX = maxX 10 * gridX; minY = minY - 10 * gridY; maxY = maxY 10 * gridY; [bigX, bigY] = meshgrid; %% model.Parameters = 3; ntest=size * size; test_dataset=[reshape, reshape]; test_label = zeros, 1); [Z, acc] = svmpredict; bigZ = reshape, size); %% clf; hold on; grid on; ispos = ); pos = find; neg = find; h1 = plot, dataset, 'r '); h2 = plot, dataset, 'g*'); h3 = plot,model.SVs,'o' ); legend; [C,h] = contour; clabel; xlabel; ylabel; title; 复制代码代码的有一个小trick是参照了svmtoy的思路。 原本我也有思路,但这个更简便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值