Python数据分析-可视化“大佬”之Seaborn

Seaborn

既然有了matplotlib,那为啥还需要seaborn呢?其实seaborn是在matplotlib基础上进行封装,Seaborn就是让困难的东西更加简单。用Matplotlib最大的困难是其默认的各种参数,而Seaborn则完全避免了这一问题。seaborn是针对统计绘图的,一般来说,seaborn能满足数据分析90%的绘图需求,复杂的自定义图形,还是要Matplotlib。Seaborn旨在使可视化成为探索和理解数据的核心部分。其面向数据集的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合,以生成信息图。

5种主题风格

  • darkgrid
  • whitegrid
  • dark
  • white
  • ticks

统计分析绘制图——可视化统计关系

统计分析是了解数据集中的变量如何相互关联以及这些关系如何依赖于其他变量的过程。常见方法可视化统计关系:散点图和线图
常用的三个函数如下:

  • replot()
  • scatterplot(kind="scatter";默认)
  • lineplot(kind="line",默认)
常用的参数
* x,y,hue 数据集变量 变量名
* date 数据集 数据集名
* row,col 更多分类变量进行平铺显示 变量名
* col_wrap 每行的最高平铺数 整数
* estimator 在每个分类中进行矢量到标量的映射 矢量
* ci 置信区间 浮点数或None
* n_boot 计算置信区间时使用的引导迭代次数 整数
* units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据
* order, hue_order 对应排序列表 字符串列表
* row_order, col_order 对应排序列表 字符串列表
* kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点
size 每个面的高度(英寸) 标量
aspect 纵横比 标量
orient 方向 "v"/"h"
color 颜色 matplotlib颜色
palette 调色板 seaborn颜色色板或字典
legend hue的信息面板 True/False
legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False
share{x,y} 共享轴线 True/False
用散点图关联变量

散点图是统计可视化的支柱。它描绘了使用点云的两个变量的联合分布,其中每个点代表数据集中的观察。因此观测两个变量之间的分布关系最好用散点图。

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

## 定义主题风格
sns.set(style="darkgrid")

## 加载tips
tips = sns.load_dataset("tips")

## 绘制图形,根据不同种类的三点设定图注
sns.relplot(x="total_bill", y="tip", hue="smoker", style="time", data=tips);
plt.show()

## 绘制渐变效果的散点图
sns.relplot(x="total_bill", y="tip", hue="size", palette="ch:r=-.5,l=.75", data=tips);
plt.show()

如果数据量大的情况下,用hex散点图

eg:
## 设置颜色
sns.set(color_codes=True)
mean, cov = [0, 1], [(1, .5), (.5, 1)] # 设置均值(一组参数)和协方差(两组参数)
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("ticks"):
    sns.jointplot(x=x, y=y, kind="hex", color="k")
plt.show()

热点图

热点图是通过使用不同的标志将图或页面上的区域按照受关注程度的不同加以标注并呈现的一种分析手段,标注的 手段一般采用颜色的深浅、点的疏密以及呈现比重的形式。在数据分析中比较常用,如果离散数据波动变化比较 大,那么可以使用热点图来观察波动变化,另外特别是在相关性和相关系数的应用中,特征和特征之间会存在相关 系数,常用的方式是采用Pandas求出相关系数,此时可以采用热点图来清晰地观察特征和特征之间的相关程度

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

np.random.seed(0)
sns.set()

## 热点图的绘制 ax = sns.heatmap(flights, cbar=False)

直方图

直方图主要是用于单变量单特征数据分析

eg:
sns.set(style="darkgrid")
np.random.seed(sum(map(ord, "distributions")))
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
plt.show()

比较图

比较土主要适用于观察变量两两之间的关系。对角线是直方图(统计数量),其他的是散点图。

eg:采用的是鸢尾花的内部数据集
sns.set(color_codes=True)
iris = sns.load_dataset("iris")
sns.pairplot(iris)
plt.show()

回归分析图

regplot()lmplot()都可以绘制回归关系,推荐regplot()

两者间主要的区别是:regplot接受各种格式的x y,包括numpy arrays ,pandas series 或者pandas Dataframe对象。相比之下,lmplot()只接受字符串对象。这种数据格式被称为’long-form’或者’tidy’。除了输入数据的便利性外,regplot()可以看做拥有lmplot()特征的一个子集。

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

import seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "regression")))

tips = sns.load_dataset("tips")

## 使用regplot绘制
sns.regplot(x="total_bill", y="tip", data=tips)
plt.show()

rebust回归图,需要添加参数忽略某个异常点

eg:
anscombe = sns.load_dataset("anscombe")
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'III'"),
           robust=True, ci=None, scatter_kws={"s": 80})
plt.show()

树形图

类似于散点图,用于显示每一个数据的分布情况

eg:
tips = sns.load_dataset("tips")
sns.swarmplot(x="day", y="total_bill",hue="sex",data=tips)
plt.show()

原文地址:https://www.cnblogs.com/cecilia-2019/p/11368248.html

时间: 2024-11-08 18:48:28

Python数据分析-可视化“大佬”之Seaborn的相关文章

Python数据分析-可视化“大佬”之Matplotlib

Matplotlib--Python可视化包 折线图绘制 折线图适合二维的大数据集,还适合多个二维数据集的比较,主要是用于反映数据的发展趋势变化情况. ## 采用失业率的数据集进行绘制 import numpy as np from numpy import arange import pandas as pd import matplotlib.pyplot as plt dataSet = pd.read_csv("unrate.csv") # print(dataSet) dat

Python数据分析及可视化的基本环境

首先搭建基本环境,假设已经有Python运行环境.然后需要装上一些通用的基本库,如numpy, scipy用以数值计算,pandas用以数据分析,matplotlib/Bokeh/Seaborn用来数据可视化.再按需装上数据获取的库,如Tushare(http://pythonhosted.org/tushare/),Quandl(https://www.quandl.com/)等.网上还有很多可供分析的免费数据集(http://www.kdnuggets.com/datasets/index.

Python 数据可视化工具以及数据分析开发架构

Python 数据可视化进阶 Python数据可视化教程:基于 plotly 动态可视化绘图 ?https://edu.51cto.com/sd/4bff8 ? Python数据可视化教程 Seaborn ?https://edu.51cto.com/sd/19627 Python 数据分析实战 视频课程https://edu.51cto.com/sd/63225 Python数据可视化: pyecharts实战 ????? pyecharts 是一个用于生成 Echarts 图表的类库.Ech

Python数据分析、数据采集、数据可视化、图像数据处理分析视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

【python数据分析实战】电影票房数据分析(二)数据可视化

目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一)数据采集> 已经获取到了2011年至今的票房数据,并保存在了mysql中. 本文将在实操中讲解如何将mysql中的数据抽取出来并做成动态可视化. 图1 每年的月票房走势图 第一张图,我们要看一下每月的票房走势,毫无疑问要做成折线图,将近10年的票房数据放在一张图上展示. 数据抽取: 采集到的票房数据是

python数据分析入门学习笔记儿

学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分析相关python库的介绍(前言1~4摘抄自<利用python进行数据分析>) 1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 (3)用于读写硬盘

Python数据分析入门

Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内容如下: 数据导入 导入本地的或者web端的CSV文件: 数据变换: 数据统计描述: 假设检验 单样本t检验: 可视化: 创建自定义函数. 数据导入 这是很关键的一步,为了后续的分析我们首先需要导入数据.通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式.在Python中,我们的操作如

python数据分析入门笔记[1]

1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 (3)用于读写硬盘上基于数组的数据集的工具 (4)线性代数运算.傅里叶变换,以及随机数生成 (5)用于将C.C++.Fortran代码集成到python的工具 2.pandas pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数.pandas兼具Numpy高性能的数组计算功能以及

【数据科学】Python数据可视化概述

注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Python中,使用的最多的数据可视化工具是matplotlib,除此之外还有很多其他可选的可视化工具包,主要包括以下几大类: matpl