Seaborn绘图
全部代码:https://github.com/lawlite19/Blog-Back-Up/blob/master/code/seaborn_study.py
个人博客地址:http://lawlite.me/2017/06/14/Seaborn%E7%BB%98%E5%9B%BE/
一、介绍与安装

1、介绍
官网:http://seaborn.pydata.org/index.html
Github: https://github.com/mwaskom/seaborn
Seaborn 其实是在matplotlib的基础上进行了更高级的 API 封装,从而使得作图更加容易
在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充
2、安装
直接 pip3 install seaborn即可

二、分布图

1、distplot

导入包

#-*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
#%matplotlib inline  # 为了在jupyter notebook里作图,需要用到这个命令

加载 seaborn中的数据集:tips = sns.load_dataset('tips')
分布图 
kde是高斯分布密度图,绘图在0-1之间
hist是否画直方图
rug在X轴上画一些分布线
fit可以制定某个分布进行拟合
label legend时的值
axlabel制定横轴的说明

sns.distplot(tips['total_bill'], bins=None, hist=True, kde=False, rug=True, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
sns.plt.show()

拟合分布 
这里使用了gamma分布拟合

from scipy import stats
sns.distplot(tips.total_bill, fit=stats.gamma, kde=False)
sns.plt.show()


2、kdeplot

高斯概率密度图 
data2可以是二维的分布
shade是否填充
kernel核函数,还有很多核函数,比如cos, biw等
cumulative累积的作图,最后的值应该是接近1
gridsize多少个点估计

    ax = sns.kdeplot(tips['total_bill'], data2=tips.tip, shade=False, vertical=False, kernel="gau", bw="scott", gridsize=100, cut=3, clip=None, legend=True, cumulative=False, shade_lowest=True, ax=None)sns.plt.show()

二、pairplot

1、两两作图
iris 为例 
data: DataFrame格式的数据
hue: label类别对应的column name
vars: 指定feature的列名
kind: 作图的方式,可以是reg或scatter
diag_kind: 对角线作图的方式,可以是hist或kde

    iris = sns.load_dataset('iris')g = sns.pairplot(iris, hue='species', hue_order=None, palette=None, vars=list(iris.columns[0:-1]), x_vars=None, y_vars=None, kind="reg", diag_kind="hist", markers=['o','s','D'], size=1.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None)sns.plt.show()

三、stripplot和swarmplot

1、stripplot
tips为例,查看每天的数据信息 
x: X轴数据
y: Y轴数据
hue: 区分不同种类数据的column name
data: DataFrame类型数据
jitter: 将数据分开点,防止重叠

    tips = sns.load_dataset('tips')ax = sns.stripplot(x='day', y='total_bill', hue=None, data=tips, order=None, hue_order=None, jitter=True, split=False, orient=None, color=None, palette=None, size=5, edgecolor="gray", linewidth=0, ax=None)


查看关于性别消费的信息

    ax = sns.stripplot(x='sex', y='total_bill', hue='day', data=tips, order=None, hue_order=None, jitter=True, split=False, orient=None, color=None, palette=None, size=5, edgecolor="gray", linewidth=0, ax=None)


2、swarmplot

与stripplot类似,只是数据点不会重叠 (适合小数据量)

    tips = sns.load_dataset('tips')ax = sns.swarmplot(x='sex', y='total_bill', hue='day', data=tips)sns.plt.show()


四、boxplot

1、boxplot示意图


函数 
x, y:指定X轴,Y轴的columns name值
hue: 指定要区分的类别

    tips = sns.load_dataset('tips')ax = sns.boxplot(x='day', y='total_bill', hue=None, data=tips, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=.75, width=.8, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None)sns.plt.show()

- 可以和上面的stripplot一起用

    tips = sns.load_dataset('tips')ax = sns.boxplot(x='day', y='total_bill', hue=None, data=tips, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=.75, width=.8, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None)sns.stripplot(x='day', y='total_bill', hue=None, data=tips, order=None, hue_order=None, jitter=True, split=False, orient=None, color=None, palette=None, size=5, edgecolor="gray", linewidth=0, ax=None)sns.plt.show()

五、jointplot

1、jointplot
联合作图

kind: 有scatter” | “reg” | “resid” | “kde” | “hextips = sns.load_dataset('tips')from scipy import statsg = sns.jointplot(x='total_bill', y='tip',data=tips, kind="reg", stat_func=stats.pearsonr, color=None, size=6, ratio=5, space=.2, dropna=True, xlim=None, ylim=None, joint_kws=None, marginal_kws=None, annot_kws=None)sns.plt.show()


可以在基础上再作图 
plot_joint就是在联合分布上作图
plot_marginals就是在边缘分布上再作图
    g = (sns.jointplot(x='total_bill', y='tip',data=tips).plot_joint(sns.kdeplot))

六、violinplot

1、小提琴图,和boxplot很像
对称的kde图
中间的白点是中位数,黑色粗线对应分位数

inner: 指定图里面用什么划分,有"box", "quartile", "point", "stick", None 
quartile为四分位数划分
stick很像rug,就是可以看出密度情况
scale: 缩放每个图对应的area, 取值有 "area", "count", "width" 
area指定每个有相同的area
count会按数量缩放(数量少的就比较窄扁)

    tips = sns.load_dataset('tips')ax = sns.violinplot(x='day', y='total_bill', hue='smoker', data=tips, order=None, hue_order=None, bw="scott", cut=2, scale="area", scale_hue=True, gridsize=100, width=.8, inner="quartile", split=False, orient=None, linewidth=None, color=None, palette='muted', saturation=.75, ax=None) sns.plt.show()


七、pointplot, bar

1、pointplot
点图 
estimator:点的取值是,默认是np.mean

    tips = sns.load_dataset('tips')sns.pointplot(x='time', y='total_bill', hue='smoker', data=tips, order=None, hue_order=None, estimator=np.mean, ci=95, n_boot=1000, units=None, markers="o", linestyles="-", dodge=False, join=True, scale=1, orient=None, color=None, palette=None, ax=None, errwidth=None, capsize=None)sns.plt.show()


2、barplot
条形图 
y轴是mean value,和点图其实差不多

    tips = sns.load_dataset('tips')sns.barplot(x='day', y='total_bill', hue='sex', data=tips, order=None, hue_order=None, estimator=np.mean, ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None, saturation=.75, errcolor=".26", errwidth=None, capsize=None, ax=None)sns.plt.show()


3、countplot

    tips = sns.load_dataset('tips')sns.countplot(x='day', hue='sex', data=tips)sns.plt.show()  

八、factorplot

1、可以通过这个函数绘制以上几种图
指定kind即可,有point, bar, count, box, violin, strip
row和col指定绘制的行数和列数,给出一个种类类型的列名即可

    titanic = sns.load_dataset('titanic')sns.factorplot(x='age', y='embark_town', hue='sex', data=titanic,row='class', col='sex', col_wrap=None, estimator=np.mean, ci=95, n_boot=1000, units=None, order=None, hue_order=None, row_order=None, col_order=None, kind="box", size=4, aspect=1, orient=None, color=None, palette=None, legend=True, legend_out=True, sharex=True, sharey=True, margin_titles=False, facet_kws=None)sns.plt.show()

九、heatmap

1、heatmap

   flight = sns.load_dataset('flights')flights = flight.pivot('month','year','passengers')sns.heatmap(flights, annot=True, fmt='d')sns.plt.show()

十、时序绘图

1、tsplot
condition: 和hue差不多,指定类别
estimator: 默认为np.mean

    gammas = sns.load_dataset('gammas')sns.tsplot(data=gammas, time='timepoint', unit='subject', condition='ROI', value='BOLD signal', err_style="ci_band", ci=68, interpolate=True, color=None, estimator=np.mean, n_boot=5000, err_palette=None, err_kws=None, legend=True, ax=None)sns.plt.show()


Reference
Youtube: https://www.youtube.com/playlist?list=PLgJhDSE2ZLxYlhQx0UfVlnF1F7OWF-9rp
Github: https://github.com/knathanieltucker/seaborn-weird-parts

python 包的使用 (四)——Seaborn绘图相关推荐

  1. python数据分析 | seaborn绘图学习

    seaborn绘图学习 1 seaborn介绍和安装 2 关系型绘图 3 分类绘图 3.1 分类散点图 3.2 分类分布图 3.3 分类统计图 3.4 分布绘图 4 线性回归绘图 5 综合 1 sea ...

  2. 用Python分析了1w四六级数据,教你如何通过四六级!

    微信改版,加星标不迷路! 用Python分析了1w四六级数据,教你如何通过四六级! 作者:阿广 概述 前言 数据介绍 预期结果 实现过程 搞笑一刻 阿广说 每日问题 前言 陈奕迅说过:在有生的瞬间,考 ...

  3. python各个绘图的作用,深度讲解Python四大常用绘图库的“绘图原理”

    转自:数据分析与统计学之美 为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该 ...

  4. 肝!深度讲解Python四大常用绘图库的“绘图原理”

    为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该怎么做,四个字一学就忘. 其 ...

  5. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  6. Python---(9)数据科学领域常用的15个Python包

    由于近年来Python已经在数据科学领域引起了很大的关注,我想根据最近的经验,为数据科学家和工程师列出一些最有用的库. 由于所有的库都是开源的,我们增加了来自Github的提交,贡献者,计数和其他指标 ...

  7. 深度讲解 Python 四大常用绘图库的“绘图原理”

    作者 | 黄伟呢 整理 | 杨碧玉 出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 |  CSDN 下载自视觉中国 为什么要写这篇文章? 最近有不少粉丝来问我,Pytho ...

  8. 大数据可视化python_大数据分析之Python数据可视化的四种简易方法

    本篇文章探讨了大数据分析之Python数据可视化的四种简易方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 数据可视化是任何数据科学或机器学习项目的一个重要组成部分 ...

  9. 超详细Seaborn绘图 ——(一)barplot

    Seaborn是基于matplotlib的图形可视化python包.它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表.Seaborn是在matplotlib的基础上进行了更高级的AP ...

  10. 《Python程序设计》实验四 Python综合实践实验报告

    <Python程序设计>实验四 Python综合实践实验报告 1.实验内容 Python综合应用:爬虫.数据处理.可视化.机器学习.神经网络.游戏.网络安全等. 在华为ECS服务器(Ope ...

最新文章

  1. 5.1.14 守护线程
  2. 开启报名 | 青源 Salon 第 1 期:强化学习专场,报告,海报,激辩,这是年轻人的会场
  3. Linux 安装Resin4.0.40
  4. 西北工业大学 计算机学院王云岚,王云岚
  5. QT中事件发送函数sendEvent()、postEvent()详解
  6. 三星s8android pie,三星更改Galaxy S8的Android Pie更新计划,添加Gala
  7. 全球前十大证券交易所在区块链领域的探索和布局
  8. omnet++tictoc12案例解析
  9. PC版免费京东全民营业自动化做任务脚本(多号版)
  10. python实现图片识别文字程序
  11. linux+软盘启动程序,怎样制作Linux启动软盘.
  12. 高仿知乎android客户端,仿知乎分享界面
  13. java个十百千万位余数_1 Java第三课[流程控制]
  14. cloudflare免费证书_新Cloudflare:免费CDN+免费SSL证书轻松搞定https
  15. 基于51单片机十字路口交通灯_5s黄灯闪烁
  16. 商标复审成功率是多少?
  17. 【译】A Fully Spiking Hybrid Neural Network for Energy-Efficient Object Detection
  18. 毕业设计 - 基于Java的聊天室系统设计与实现【源码+论文】
  19. 文本(文章内容)编辑器(CMS管理)
  20. 安卓自定义view中 绘画基本图形点线面,矩形,方形,圆,扇形,文字及沿着特定方向布局,自定义圆角ImageView图片等等相关api使用方法及举例

热门文章

  1. ORACLE 12c RAC的常用管理命令
  2. Linux学习篇之权限管理
  3. BZOJ4435 : [Cerc2015]Juice Junctions
  4. css hack 笔记 for ie8,ie7
  5. ios微信上无法自动播放音频的情况
  6. Java ArrayList 数组之间相互转换
  7. UIAlertView使用全解
  8. ADO 错误:0x80004005,连接字符串属性无效
  9. “error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”解决方法。
  10. php fpm过多,Linux下php-fpm进程过多导致内存耗尽问题解决