Seaborn是对matplotlib的扩展,是一个数据可视化库,提供更高级的API封装,在应用中更加的方便灵活。下面我简单介绍一下他的最基本用法,实际应用的时候,可以直接从文档中查找这个库,这时候使用就很快捷了。

首先将使用它所需要的库导入进来,当然,其中包括numpy之类的是为了演示它的功能才导入的,大家要先理解一下每个库的作用。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from pandas import Series,DataFrame

import seaborn as sns # seaborn习惯简写为sns

直方图和密度图

如果在 ipython,可以通过 %matplotlab 来解决每次通过 plt.show() 来显示图像,或者 jupyter notebook 中可以使用%matplotlib inline,后面程序我就省略了 plt.show() ,可以根据自己的环境选择显示图像的方式。

matplotlib

s1 = Series(np.random.randn(1000)) # 生成1000个点的符合正态分布的随机数

plt.hist(s1) # 直方图,也可以通过plot(),修改里面kind参数实现

s1.plot(kind='kde') # 密度图

seaborn

s1 = Series(np.random.randn(1000)) # 生成1000个点的符合正态分布的随机数

sns.distplot(s1,hist=True,kde=True,rug=True) # 前两个默认就是True,rug是在最下方显示出频率情况,默认为False

# bins=20 表示等分为20份的效果,同样有label等等参数

sns.kdeplot(s1,shade=True,color='r') # shade表示线下颜色为阴影,color表示颜色是红色

sns.rugplot(s1) # 在下方画出频率情况

给出两种方式通过最基本的方式画出来的效果,怎么样,是不是发现seaborn很强大。

柱状图和热力图

下载实验数据

df = sns.load_dataset('flights') # 在线下载一个数据用于实验,在sns.load_dataset()函数里有很多的数据,想了解更多的可以到GitHub中找到源码,你就会很清楚了

我们可以先看一下里面的数据,可以看到,这是一个航空的数据,里面有年、月和乘客数量,接下来我们就要在这份数据上进行分析。

数据处理

我们可以通过透视表来先对这份数据进行一下处理,大家可以自己试一下,这样生成的结果是以年为columns,以月为index,表内数据为对应的乘客数量。

df = df.pivot(index='month',columns='year',values='passengers') # 生成一个透视表,得到一个以年、月为轴的二维数据表

绘制柱状图

s = df.sum()

# 通过matplotlib绘出图形

s.plot(kind='bar')

# 通过seaborn绘出图形

sns.barplot(x=s.index,y=s.values)

绘制热力图

df.plot() # 线性的显示数据情况

# sns.heatmap(df) # 生成热力图

# sns.heatmap(df,annot=True,fmt='d') # annot参数是指显示数据,fmt='d'是指以整数形式显示

图形显示效果

axes_style and set_style

x = np.linspace(0,14,100)

y1 = np.sin(x)

y2 = np.sin(x+2)*1.25

def sinplot():

plt.plot(x,y1)

plt.plot(x,y2)

sinplot() # 以matplotlib显示,生成两个函数图像

# seaborn的5种装饰风格

styles = ['darkgrid','dark','white','whitegrid','tricks'] # 颜色代表背景颜色,grid代表是否有网格

sns.set_style(style[0]) # 进行装饰,括号内可以直接写装饰风格

sinplot() # 经过修饰之后的图像

sns.axes_style() # 显示当前主题的内容,这些数据都可以修改微调

# 更改的时候就将其信息的以字典形式复制到set_style()里,当做参数来修改(注意是以字典的形式)

sns.set() # 设置风格为空,即清空自己定义的,恢复到默认的时候

plotting_context and set_context

context = ['paper','notebook','talk','poster'] # seaborn本身定义好的

sns.set_context('paper',rc={'grid.linewidth':3.0}) # rc参数

sinplot()

sns.plotting_context() # 显示出当前状态的数据

sns.set() # 恢复到默认

图像貌似一样,但并不是没有成功,只是变化比较细微,真正用到的时候就可以体会到了。

调色功能

# 先绘制一个图像

def sinplot1():

x = np.linspace(0,14,100)

plt.figure(figsize=(8,6)) # 图像比较小时,通过这个函数更改大小

for i in range(4):

plt.plot(x,np.sin(x+i)*(i+0.75),label='sin(x+%s)*(%s+0.75)' % (i,i))

plt.legend()

sinplot1()

# 引入seaborn

sns.color_palette() # 使用调色板

# 不传入参数返回当前使用的调色板(RGB)

sns.palplot(sns.color_palette()) # 画出调色板,参数为上面的调色板

接下来,我们就要调整我们的调色板了。

pal.style = ['deep','nuted','pastel','bright','dark','colorblind'] # seaborn默认定义的调色板

# 第一种设置画板方式

sns.set_palette(sns.color_palette('dark')) # 设置色板

sns.set() # 恢复默认风格

# 第二种设置画板方式,并且最后恢复到默认

with sns.color_palette():

sinplot1() # 在内部调整画板输出图形,当with结束时,则恢复默认

调色板里的颜色是定义好的,那么如果我们将要绘制的图形包括很多的函数,需要更多的颜色,该怎么办呢?

# 默认提供的色板数量是固定的,如果图像是更多的函数,那么颜色将循环色板中的风格。如果想不使他颜色有相同,可以通过sns.color_palette()来修改

sns.color_palette([(0.5,0.2,0.6),(0.3,0.3,0.4)]) # 因为色板是以列表的形式存储的,里面的每种风格以元组的形式存在所以需要用[()]

# 第二种增加色板颜色的方法

sns.color_palette('hls',8) # hls方法,后面写参数8,即生成有8种不同颜色的色板

python中seaborn是什么_Python-Seaborn绘图(matplotlib补充)相关推荐

  1. python中利用turtle(海龟)绘图制作龟兔赛跑动画——仅供学习

    python中利用turtle(海龟)绘图制作龟兔赛跑动画--仅供学习哦 首先,欢迎大家来我的博客当中浏览,由于我和我的可爱现在还都个初学者,所作的东西还不够完善,之前在学习计算机的各种语言的过程中, ...

  2. python中plt颜色代码_python plt.bar 颜色

    由于Matplotlib是Python的一个库,因此在程序开发中,它也可以使用 Python的其他库,Matplotlib通常与NumPy和pandas等库配合使用. Matplotlib 概述使用 ...

  3. python中lcut什么意思_python中如何画火山图

    1.导入数据import pandas as pd # Data analysis import numpy as np # Scientific computing import seaborn a ...

  4. 【Python2】使用python中的turtle模块学习海龟绘图(有趣的python初体验)(最全最详细的turtle介绍使用)

    目录 海龟绘图 Python中tkinter的mainloop函数实质 turtle模块里的方法 Python绘图Turtle库详解 turtle绘图的基础知识: 海龟绘图 海龟绘图是Python中非 ...

  5. python中turtle隐藏画笔_python中Turtle的画笔命令有哪些?

    一.画笔 1.画笔运动的命令 turtle.forward(a) 向当前画笔方向移动a像素长度 turtle.backward(a) 向当前画笔相反方向移动a像素长度 turtle.right(a) ...

  6. python中mainloop添加背景_Python实例讲解 tkinter canvas (设置背景图片及文字)

    Python实例讲解 tkinter canvas (设置背景图片及文字) 2018-09-14 Python实例讲解 -- tkinter canvas (设置背景图片及文字) 博客分类:Pytho ...

  7. python中的元类_python中的元类

    类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...

  8. python中chr的用法_python中chr()函数和ord()函数的用法

    原博文 2018-06-11 21:52 − 一,chr()函数 格式:Chr(<数值表达式>) 说明:函数返回值类型为String,其数值表达式值取值范围为0~255. 例如:Print ...

  9. python中csv文件操作_python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  10. python中for循环缩进_Python减少循环层次和缩进的技巧分析

    本文实例分析了Python减少循环层次和缩进的技巧.分享给大家供大家参考,具体如下: 我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和 ...

最新文章

  1. 费用流 ---- P1251 餐巾计划问题[拆点](网络流24题)
  2. php新手最容易犯的错误,学习PHP过程中容易犯的一些错误
  3. ceph集群简单安装部署(Ubuntu14环境)
  4. 师范生计算机硬件技能怎么填,浅析对师范生教育技术能力培养与发展问题的思考的论文...
  5. mysql8.0新建用户登录_Mysql8.0 创建远程登陆账户
  6. RANSAC迭代估计
  7. 日期条控件 DateFieldControl
  8. nuttx linux 编译,linux下建立nuttx开发环境
  9. HDU 5898 odd-even number
  10. python调用接口获取文件_Python中做接口自动化如何读取配置ini文件
  11. librtmp linux下 编译,LibRtmp编译并导入Android Studio
  12. 基于51单片机的电子称称重压力检测阈值报警系统方案原理图设计
  13. Chrome:下载Chrome网上应用店扩展程序crx
  14. 鸿蒙之境浩然溟涬,列子 简历 - 名人简历
  15. seacms海洋cms漏洞
  16. aftershokz蓝牙搜不到_硬核!小程序时怎么控制蓝牙设备的?
  17. 图像去燥:NLM、BM3D
  18. 史记.(闸北)刀客列传
  19. Java简繁体转换分享
  20. Java项目:ssm流浪猫狗救助管理系统

热门文章

  1. js字符串日期直接比较大小
  2. 最受欢迎的八种编程语言
  3. Vim中如何全选复制粘贴
  4. vue实现查询组件的封装
  5. otg usb 定位_USB OTG插入检测识别
  6. 5.18 优先队列(堆) 滑动窗口(二) 交换链表的节点
  7. 线性与非线性规划:随机方向法
  8. 安卓应用软件开发必学的基础内容
  9. Unity框架——MVC框架
  10. 流体的“流线”和“迹线”定义和区别。