Seaborn常用绘图函数

  • 介绍
  • 主题风格
  • 函数
  • 参考
  • 备注

介绍

seaborn是基于Matplotlib的Python数据可视化库。它提供了一个高级界面,用于绘制引人入胜且内容丰富的统计图形,在Matplotlib上进行了更高级的API封装,从而使作图更加容易

主题风格

sns.set_style("whitegrid")  横坐标有标线,纵坐标没有标线,背景白色
sns.set_style("darkgrid")  默认,横纵坐标都有标线,组成一个一个格子,背景稍微深色
sns.set_style("dark") 背景稍微深色,没有标线线
sns.set_style("white") 背景白色,没有标线线
sns.set_style("ticks")  xy轴都有非常短的小刻度
sns.despine(offset=30,left=True)  去掉上边和右边的轴线,offset=30表示距离轴线(x轴)的距离,left=True表示左边的轴保留

函数

(1): 单变量分布图 - sns.distplot

sns.distplot(a, bins=None, hist=True, kde=True, rug=False, 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)

参数解读

  • bins:int或list,控制直方图的划分
#bins
x = np.random.randn(100) #返回100个数 且符合正态分布
fig,axes=plt.subplots(1,2)
sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20个区间
sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3为分割点,形成区间[0,1],[1,2],[2,3],区间外的值不计入。

  • 通过hist和kde参数调节是否显示直方图及核密度估计(默认hist,kde均为True)
x = np.random.randn(100) #返回100个数 且符合正态分布
fig,axes=plt.subplots(1,3)  #创建一个1行三列的图片
sns.distplot(x,ax=axes[0])
sns.distplot(x,hist=False,ax=axes[1])  #不显示直方图
sns.distplot(x,kde=False,ax=axes[2])  #不显示核密度

  • rug:控制是否生成观测数值的小细条
x = np.random.randn(100) #返回100个数 且符合正态分布
fig,axes=plt.subplots(1,2)  #创建一个1行2列的图片
sns.distplot(x,rug=True,ax=axes[0]) #左图
sns.distplot(x,ax=axes[1]) #右图

  • fit:控制拟合的参数分布图形,能够直观地评估它与观察数据的对应关系(黑色线条为确定的分布)
x = np.random.randn(100) #返回100个数 且符合正态分布
# from scipy.stats import *
sns.distplot(x,hist=False,fit=norm) #拟合标准正态分布 黑色线

  • vertical=True,color=“y”:控制图像的横竖摆放,图中颜色显示
sns.distplot(x,vertical=True,color="y")

  • norm_hist:若为True, 则直方图高度显示密度而非计数(含有kde图像中默认为True)
x = np.random.randn(100) #返回100个数 且符合正态分布
fig,axes=plt.subplots(1,2) #创建一个1行2列的图片
sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左图
sns.distplot(x,kde=False,ax=axes[1]) #右图

内容解读:

  • sns.distplot(x) 对单变量X直接绘制出直方图,并绘制概率拟合曲线
  • Y轴代表概率密度
  • 每个柱子的面积代表概率,面积和=1
  • distplot支持3种格式数据:pandas.series、numpy中的1darray以及普通的list类型

================================================================

(2):双变量分布图 散点图 - serborn.jointplot

serborn.jointplot(x,y,data=None,kind=“scatter”,color=None,size=6,ratio=5,space=0.2,dropna=True,xlim=None,ylim=None,joint_kws=None,marginal_kws=None,annot_kws=None,**kwargs)

参数解读:

sns.jointplot(x=df['A'], y=df['B'], #设置xy轴,显示columns名称data = df,  #设置数据color = 'b', #设置颜色s = 50, edgecolor = 'w', linewidth = 1,#设置散点大小、边缘颜色及宽度(只针对scatter)kind = 'scatter',#设置类型:散点图'scatter' ,'reg','resid',密度图'kde',六边形图'hex'space = 0.1, #设置散点图和布局图的间距size = 8, #图表大小(自动调整为正方形))ratio = 5, #散点图与布局图高度比,整型marginal_kws = dict(bins=15, rug =True),) #设置柱状图箱数,是否设置rug

举例:

rs = np.random.RandomState(2)
df = pd.DataFrame(rs.randn(200,2), columns = ['A','B'])
fig,axes=plt.subplots(3,1) #创建一个1行2列的图片sns.jointplot(x=df['A'], y=df['B'], #设置xy轴,显示columns名称data = df,  #设置数据color = 'b', #设置颜色
#               s = 50, edgecolor = 'w', linewidth = 1,#设置散点大小、边缘颜色及宽度(只针对scatter)
#               stat_func=sci.pearsonr,kind = 'hex',#设置类型:散点图'scatter' ,'reg','resid',,密度图'kde',六边形图'hex'#stat_func=<function pearsonr>,space = 0.1, #设置散点图和布局图的间距size = 8, #图表大小(自动调整为正方形))ratio = 5, #散点图与布局图高度比,整型marginal_kws = dict(bins=15, rug =True),) #设置柱状图箱数,是否设置rug

rs = np.random.RandomState(2)
df = pd.DataFrame(rs.randn(200,2), columns = ['A','B'])
fig,axes=plt.subplots(3,1) #创建一个1行2列的图片sns.jointplot(x=df['A'], y=df['B'], #设置xy轴,显示columns名称data = df,  #设置数据color = 'b', #设置颜色s = 50, edgecolor = 'w', linewidth = 1,#设置散点大小、边缘颜色及宽度(只针对scatter)
#               stat_func=sci.pearsonr,kind = 'scatter',#设置类型:'scatter','reg','resid','kde','hex'#stat_func=<function pearsonr>,space = 0.1, #设置散点图和布局图的间距size = 8, #图表大小(自动调整为正方形))ratio = 5, #散点图与布局图高度比,整型marginal_kws = dict(bins=15, rug =True),) #设置柱状图箱数,是否设置rug

=================================================================

(3):双变量分布图 曲线图 - seaborn.relplot

seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None,size_norm=None, markers=None, dashes=None, style_order=None, legend='brief',kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)

参数解读:

seaborn.relplot(x=None, y=None,   #x, y:data中的变量名 输入数据的变量;数据必须为数值型。hue=None,  #将会产生具有不同颜色的元素的变量进行分组。这些变量可以是类别变量或者数值型变量size=None,  #用粗细表现出分组的不同。可以是分组或数字(10, 100)style=None, #cue 虚线 stim实线 也可以是分组data=None,  #DataFramerow=None, col=None,  #col列分组 row行分组col_wrap=None,  #int这个变量设置可以将多列包装以多行的形式展现(有时太多列展现,不便利),但不可以将多行以多列的形式展现。row_order=None,col_order=None,   #以此顺序组织网格的行和/或列,否则顺序将从数据对象中推断palette=None,  #["b", "r"] 列表格式 对不同分组设定不同颜色hue_order=None,  #列表 指定hue变量层级出现的顺序 否则会根据数据确定hue_norm=None, #元组或者 Normalize 对象 sizes=None,  #列表、字典或者元组 当使用sizes时,用于确定如何选择尺寸。此变量可以一直是尺寸值的列表或者size变量的字典映射。#当size为数值型时,此变量也可以是指定最小和最大尺寸的元组,这样可以将其他值标准化到这个范围size_order=None,  #列表  指定size变量层次的表现顺序,不指定则会通过数据确定。当size变量为数值型时与此无关size_norm=None,  #元组或者 Normalize 对象   当size变量为数值型时,用于数据单元的 scaling plot 对象的标准化legend='brief',  #“brief”, “full”, 或者 False, #用于决定如何绘制坐标轴。如果参数值为“brief”, 数值型的hue以及size变量将会被用等间隔采样值表示。#如果参数值为“full”, 每组都会在坐标轴中被记录。如果参数值为“false”, 不会添加坐标轴数据,也不会绘制坐标轴。kind='scatter', #可选项为(scatter 散点图 及line 曲线图).height=5,  #每个 生成图 的高度aspect=1, #每个 生成图 的长宽比
)

举例:

sns.relplot(x="timepoint", y="signal", data=df, kind="line")

================================================================

(4)条形图 sns.barplot()

countplot参数和barplot基本差不多,可以对比着记忆,有一点不同的是countplot中不能同时输入x和y,且countplot没有误差棒,类别特征barplot要同时传入x,y

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,  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)

参数解读:

seaborn.barplot(x=None, y=None, #数据X,Y轴传值hue=None,  #数据分组变量名data=None, #DataFrame,数组或数组列表order=None, hue_order=None, #显式指定分类顺序,order=[字段变量名1,字段变量名2,...]ci=95,  #在估计值附近绘制置信区间的大小n_boot=1000, #计算置信区间时使用的引导迭代次数orient=None,  # 横v\纵h 图的显示方向(垂直或水平,即横向或纵向)color=None, #颜色palette=None, #调试板名称,列表或字典类型saturation=0.75, #饱和度:floaterrcolor='.26', #表示置信区间的线条颜色errwidth=None, #float 表示误差线的厚度capsize=None, #float 表示误差线上"帽"的宽度(误差线上的横线的宽度)dodge=True, ax=None, **kwargs)

举例:

sns.barplot(x=df.A, y=df.B,hue=df.C,data=df)

#palette:调色板,控制不同的颜色style
fig,axes=plt.subplots(2,1)
sns.barplot(x="color",y="age",data=data,ax=axes[0])  #上图
sns.barplot(x="color",y="age",data=data,palette="Set3",ax=axes[1])  #下图

#capsize(float): 设置误差棒帽条(上下两根横线)的宽度
fig,axes=plt.subplots(1,2)
sns.barplot(x="color",y="age",data=data,ax=axes[0],capsize=.2)  #左图
sns.barplot(x="color",y="age",data=data,ax=axes[1],capsize=.9)  #右图

参考

  • https://seaborn.apachecn.org/#/docs/21

备注

  • 有时作图时,会有图片标题中文显示乱码的问题,可以使用这行代码解决:
plt.rc("font",family="SimHei",size="12")
  • 如果X的维度名称太长可以使用倾斜45度处理
plt.xticks(rotation=45)

Seaborn常用绘图函数-sjs相关推荐

  1. 通达信指标公式常用绘图函数(4)——颜色、线形粗细、线型等修饰函数

    内容提要:本文介绍了通达信指标公式常用绘图函数的第三种类型--修饰函数,主要讲解了颜色.线形粗细.线型这三种修饰函数的具体使用方法. 在通达信指标公式编写基础(一)这篇文章中讲过通达信指标公式语句的基 ...

  2. 通达信指标公式常用绘图函数(1)——DRAWNULL、NODRAW、PLOYLINE、DRAWSL

    内容提要:本文主要介绍了通达信指标公式常用绘图函数的第一种类型--画线函数,讲解了DRAWNULL.NODRAW.PLOYLINE.DRAWSL这四个画线函数的具体用法. 在上一篇文章中,技术Pie给 ...

  3. python mat函数的作用_介绍python的matplotlib常用绘图函数

    免费学习推荐:python视频教程 matplotlib具有强大的绘图功能,但是语句琐碎,每次使用都需要一句一句书写未免太过麻烦.本文根据平时绘图经验总结了常用绘图函数,可以直接使用,非常方便impo ...

  4. python的matplotlib常用绘图函数

    matplotlib具有强大的绘图功能,但是语句琐碎,每次使用都需要一句一句书写未免太过麻烦.本文根据平时绘图经验总结了常用绘图函数,可以直接使用,非常方便 import matplotlib.pyp ...

  5. OpenCV 图像处理:常用绘图函数

    本文已收录于Opencv系列专栏: 深入浅出OpenCV ,专栏旨在详解Python版本的Opencv,为计算机视觉的开发与研究打下坚实基础.免费订阅,持续更新. 文章目录 opencv中的绘图函数 ...

  6. 通达信指标公式常用绘图函数(3)——DRAWICON、DRAWTEXT、DRAWNUMBER

    前面两篇文章介绍了通达信指标公式的画线函数,今天给大家介绍绘图函数的第二种类型--标记函数,讲解DRAWICON.DRAWTEXT.DRAWNUMBER的具体用法.标记函数可以给指标发出的信号做醒目的 ...

  7. python的matplotlib的常用绘图函数模版

    import matplotlib.pyplot as plt # from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl i ...

  8. matlab 二维地图常用绘图函数用法(plot,fill,rectangle)

    matlab绘图技术应用广泛,可应用于路径规划,地图分析等,今天简单的介绍一下常见的绘图所需要的函数. 1.plot函数 (1)简单线段 plot([A.X,B.X],...[A.Y,B.Y,],'L ...

  9. matlab 可视化 —— 常用绘图函数

    (1)imhist:histogram,统计学意义上的直方图 (2)axis image off 1. scatter:散列图 散列,也即描点,但不连线. 一个二维的数据集 pcaData.txt & ...

最新文章

  1. 深度盘点:详细介绍机器学习中的7种交叉验证方法!
  2. [WCF 4.0新特性] 标准终结点与无(.SVC)文件服务激活
  3. python彩票结果分析_即将放弃Python 2.7的不止有Numpy,还有pandas和这些工具
  4. DOM(二)——XML DOM
  5. Linux内核分析 02
  6. Fiddler抓取https设置及其原理
  7. java并发锁获取的方式_Java精通并发-notify方法详解及线程获取锁的方式分析
  8. c语言数组冒泡排序程序的解释,c语言指针数组冒泡排序代码
  9. Lvs别样的自动部署监控shell脚本
  10. ubuntu下,apt的参数使用,很实用呦
  11. LeetCode刷题(34)-Rotate List
  12. linux程序流量平滑,Linux下按程序查实时流量 network traffic(示例代码)
  13. PCL之估计整个点云表面法向量
  14. 加密狗映射至虚拟服务器,XenServer6.x U盘、加密狗等USB设备映射到VM虚拟机教程.pdf...
  15. 用户画像数据建模方法
  16. GAMIT/GLOBK处理流程
  17. 起底身份倒卖产业:那些被公开叫卖的人生
  18. 没有计算的推理和基于推理的计算 逻辑与算法之五
  19. C++ 获取特定进程的CPU使用率
  20. Linux系统的下载神器XDM

热门文章

  1. 搜索功能(六)-清空历史关键字
  2. DBA嘉年华活动简介
  3. 液晶显示器黑色彩条泛蓝原因。
  4. PAT 1096大美数(测试点3)
  5. [Leetcode] KMP
  6. The Hanoi Tower
  7. 主流主板生产厂商全面剖析 电脑配件优劣及真正产地
  8. Redis追命连环问,你能回答到第几问?(下)主从复制及哨兵原理
  9. Android移动应用开发教程④
  10. 作为一名职场新人,入职四博公司十周年的感想