Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。

目录

  • 一、预备工作
  • 二、barplot
    • (一)语法
    • (二)参数详解
    • (三)实例

一、预备工作

先做好使用前的预备工作:

看下所使用的version

import seaborn as sns
sns.__version__

导入相关的模块

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
%matplotlib inline# 显示正负号与中文不显示问题
plt.rcParams['axes.unicode_minus'] = False
sns.set_style('darkgrid', {'font.sans-serif':['SimHei', 'Arial']})# 去除部分warning
import warnings
warnings.filterwarnings('ignore')

二、barplot

(一)语法

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,\estimator=<function mean>,ci=95, n_boot=1000, units=None, orient=None,\color=None, palette=None, saturation=0.75,\errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)

注意分行

条形图以矩形条的方式展示数据的点估值和置信区间

输入数据的格式可以不同,包括:

  • 以列表,numpy array 或者 pandas 中的 Series object 表示的向量。这些向量可以直接传入 x, y, 以及 hue 参数。
  • 长表, x 值,y 值和色相变量决定了数据是如何绘制的。
  • 宽表,每个列的数值都会被绘制出来.
  • 数组或者列表的向量。

大多数情况下,可以使用 numpy 的对象或者 python 的对象,但是用 pandas 对象更好,因为相关的列名会被标注在图标上。 另外,为了控制绘图元素 也可以可以用分类类型来组合不同的变量。


(二)参数详解

  • xyhue:< data中的变量名词或者向量 >
    data中用于绘制图表的变量名

  • data:< DataFrame, 数组, 数组列表 >
    是用于绘图的数据集

  • orderhue_order:< 字符串列表 >
    绘制类别变量的顺序,若没有,则会从数据对象中推断绘图顺序

  • estimator:< 映射向量 -> 标量 >
    统计函数用于估计每个分类纸条中的值

  • ci:< float or “sd” or None >
    估计值周围的置信区间大小。若输入的是sd,会跳过bootstrapping的过程,只绘制数据的标准差;
    若输入的是None,不会执行bootstrapping,而且错误条也不会绘制

  • n_boot:< int >
    计算置信区间需要的 Boostrap 迭代次数。

  • units:< data中的变量名词或向量 >
    采样单元的标识符,用于执行多级 bootstrap 并解释重复测量设计。

  • orient:< “v” 或 “h” >
    绘图的方向(垂直或水平)。这通常是从输入变量的数据类型推断出来的,但是可以用来指定“分类”变量是数字还是宽格式数据。

  • color:< matplotlib color >
    作用于所有元素的颜色,或者渐变色的种子。

  • palette:< palette name, list, or dict >
    不同级别的 hue 变量的颜色。 颜色要能被 [color_palette()]解释(seaborn.color_palette.html#seaborn.color_palette “seaborn.color_palette”), 或者一个能映射到 matplotlib 颜色的字典。

  • saturation:< float >
    原始饱和度与绘制颜色的比例。大的色块通常在稍微不饱和的颜色下看起来更好,但是如果希望打印颜色与输入颜色规格完全匹配,请将其设置为1。

  • errcolor:< matplotlib color >
    表示置信区间的线的颜色。

  • errwidth:< float >
    误差条的线的厚度。

  • capsize:< float >
    误差条端部的宽度。

  • dodge : < 布尔型 >
    当使用色调嵌套时,元素是否应该沿分类轴移动。

  • ax:< matplotlib Axes >
    指定一个 Axes 用于绘图,如果不指定,则使用当前的 Axes。

  • kwargs:< key, value mappings >
    其他的关键词参数在绘图时通过 plt.bar 传入。


(三)实例

首先最简单的画个柱形图

plt.figure(dpi=150)
x = ['金融','农业','制造业','新能源']
y = [164, 86, 126, 53]
sns.barplot(x, y)


还可以通过order改变变量顺序

plt.figure(dpi=150)
x = ['金融','农业','制造业','新能源']
y = [164, 86, 126, 53]
sns.barplot(x, y, order=['金融','制造业','农业','新能源'])


通过saturation调整饱和度,默认值为0.75

plt.figure(dpi=150)
x = ['金融','农业','制造业','新能源']
y = [164, 86, 126, 53]
sns.barplot(x, y, order=['金融','制造业','农业','新能源'], saturation=0.2)


还可以选用Seaborn的内置数据集来进行可视化处理

首先导入数据集

tips = sns.load_dataset('tips')
tips.head(5)

可以通过tips.info()查看数据集的一些具体信息

总共有7个特征,244条数据。接下来进行可视化处理

通过添加hue来绘制一组由两个变量嵌套分组的垂直条形图

plt.figure(dpi=150)
sns.barplot(x = 'day', y = 'tip', data = tips, hue = 'sex')

其中每个柱条的黑色的线条为误差线
误差线源于统计学,表示数据误差(或不确定性)范围,以更准确的方式呈现数据。误差线可以用标准差(standard deviation,SD)、标准误(standard error,SE)和置信区间表示,使用时可选用任意一种表示方法并作相应说明即可。当误差线比较“长”时,一般要么是数据离散程度大,要么是数据样本少。


绘制水平的条形图

plt.figure(dpi=150)
sns.barplot(y = 'day', x = 'tip', data = tips)


要是觉得这个默认的色系不好看,可以使用一个不同的调色盘来绘制图案

plt.figure(dpi=150)
sns.barplot(x = 'size', y = 'tip', data = tips, palette="Blues_d")

对于palette的一些具体说明,会在后续慢慢阐述。


用误差条显示平均值的标准误差

plt.figure(dpi=150)
sns.barplot(x = 'size', y = 'tip', data = tips, palette="Blues_d", ci=95)


还可以个性化误差线(调整线的颜色和厚度)

plt.figure(dpi=150)
sns.barplot(x = 'size', y = 'tip', data = tips, palette="plasma_r", ci=95,errcolor='yellow', errwidth=2, alpha=0.3)


给误差条增加"端点"

plt.figure(dpi=150)
sns.barplot(x = 'size', y = 'tip', data = tips, palette="plasma_r", ci=95,errcolor='yellow', errwidth=2, capsize=0.1,alpha=0.3)


在使用hue后,柱形本身的宽度会发生改变。若想保持柱形原宽度,可以设置dodge=False

plt.figure(dpi=150)
tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
sns.barplot(x="day", y="total_bill", hue="weekend",data=tips, dodge=False)


还可以用plt.bar中的一些参数

plt.figure(dpi=150)
sns.set_style('white')
sns.barplot(x="day", y="total_bill", data=tips,linewidth=2.5, facecolor=(1, 1, 1, 0),errcolor=".2", edgecolor=".2")

超详细Seaborn绘图 ——(一)barplot相关推荐

  1. seaborn绘图入门1(lineplot+barplot+heatmap+scatterplot)

    文章目录 1. lineplot 线图 2. barplot .heatmap 条形图.热图 2.1 barplot,条形图 2.2 heatmap,热图 3. scatterplot.regplot ...

  2. Python数据可视化之Plotnine库超详细教程系列

    Python数据可视化之Plotnine库超详细教程系列(一):概述 一.Plotnine库简介 ggplot2包奠定了R语言数据可视化在数据科学中的地位,数据可视化一直是Python的短板,即使有M ...

  3. 一份超详细的数据科学路线图!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:魔王.陈萍,来源:机器之心 从头开始学习数据科学的免费资源. 如何 ...

  4. spyder中绘图无法显示负号_matlibplot+seaborn绘图风格交叉使用

    matlibplot+seaborn绘图风格交叉使用 遇到问题:想要图一的图案,但是想要seaborn中默认的风格绘制 图一 一开始的想法是seaborn既然升级版matlibplot,应该支持直接修 ...

  5. seaborn绘图入门2(distplot+kdeplot+jointplot+set_style)

    文章目录 4. distplot(a=,kde=False),直方图 5. kdeplot,密度图 5.1 kdeplot,一维密度图 5.2 jointplot(x=,y=,kind='kde'), ...

  6. 超详细的gnuplot使用教程【2】

    超详细的gnuplot使用教程 1.gnuplot参数介绍及演示 1.1首先来解释一下会用到的各类参数以及其解释 1.2 画图实际测试 1.3 其它参数介绍(约定范围.坐标轴设定) 1.3.1 约束画 ...

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

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

  8. seaborn绘图基础介绍

    目录   1.seaborn的优点   2.seaborn的官网   3.seaborn的作者介绍   4.seaborn的缩写为什么是sns,而不是sbn?   5.seaborn与matplotl ...

  9. Python可视化库matplotlib(超详细)

    超详细Matplotlib笔记 Matplotlib简介 开发环境搭建 为什么要学习Matplotlib 绘制基础 图形绘制流程 认识Matplotlib图像结构 实现基础绘图功能 设置标签文字和线条 ...

最新文章

  1. [置顶] ros的navigation之———gmapping应用详解(in ros)
  2. c 初始化char**_CC++|指针详述及实例分析
  3. hostswap dcevm
  4. 生成随机码,保存随机文件.
  5. java两个对象属性比较
  6. 为什么CSDN登陆是明文传输账户密码
  7. 三星固态驱动安装失败_三星固态硬盘安装不了Win10无法启动解决方案
  8. 如何优化微信小程序排名?
  9. 阿里副总裁玄难:藏经阁计划研发大规模知识构建技术首次披露
  10. SEO入门教程之入门相关
  11. 免费升级win10系统方法
  12. 单片机裸机 vs RTOS多线程
  13. datax(二)datax on azkaban架构设计之datax as a service
  14. Android app升级完成以后自动重启自身App
  15. 硬件科普系列之显示篇——LCD与OLED知多少
  16. 【pandas】教程:1-处理什么样的数据
  17. 【软件测试】300个不得不懂的理论知识(上)
  18. 记来广州找实习1——还在找,还没找到。
  19. Linux 用着太爽啦!!!
  20. gdb设置与清除断点

热门文章

  1. Revit二次开发案例一(第1讲)
  2. Java之socket网络编程
  3. Windows一键删除指定文件或文件夹
  4. yolov5训练模型
  5. 使用python+selenium发送QQ邮件
  6. dubbo核心源码流程分析
  7. Linux中如何让命令在后台运行
  8. Leetcode 1345 跳跃游戏 IV
  9. 例说BPEL4WS(5)---伙伴与伙伴连接
  10. 全国计算机一级级考试试题及答案,全国计算机等级考试一级考试试题及答案