一、Matplotlib

  1.用于创建出版质量图表的绘图工具库

  2.目的的为Python构建一个Matlab式的绘图接口

  3.import matplotlib.pyplot as plt:pyplot模块包含了常用的matplotlib API函数

  4.figure

    (1)Matplotlib的图像均位于figure对象中,创建figure:plt.figure()

  1. #引入 matplotlib包
  2. import matplotlib.pyplot as plt
  3. %matplotlib inline

#创建figure
fig = plt.figure()

  5.Subplot

    (1)fig.add_subplot(a,b,c)

      a,b表示将fig分割成axb的区域,c表示当前选中要操作的区域,注意编号从1号开始

      返回的是AxesSubplot对象

      plot绘图的区域是最后一次指定的subplot的位置

      在指定的sublot里结合scipy绘制统计图

  1. #在一张图上做子图
  2. ax1 = fig.add_subplot(,,)
  3. ax2= fig.add_subplot(,,)
  4. ax3=fig.add_subplot(,,)
  5. ax4 = fig.add_subplot(,,)

#在subplot上来作图
import numpy as np
random_arr = np.random.randn(100) #生成100个随机数随机分布

#print random_arr
#默认是在最后一次使用subplot的位置上作图,但是在jupyter里是无效的
plt.plot(random_arr) #这里默认作的是线图
plt.show()

    (2)直方图  hist;s散点图scatter;柱状图 bar;矩阵绘图plt.imshow()

  1. #在指定的subplot上来绘图
  2. import scipy as sp
  3. from scipy import stats
  4.  
  5. x = np.linspace(-,,) #这里表示生成一组数,数据的范围是从-5到15,将数据平均分成50份
  6. print(x.shape) #打印出数据的分布以及数据的大小
  7. print(x)
  8.  
  9. #绘制高斯分布,下面的这个x是x轴,sp.stats.norm.pdf是y轴
  10. plt.plot(x,sp.stats.norm.pdf(x=x,loc = ,scale=))
  11.  
  12. #绘制叠加直方图 sp.stats.norm.rvs是生成一个正太分布的直方图,将数据分为50个小组,指定颜色,指定透明度
  13. plt.hist(sp.stats.norm.rvs(loc=,scale=,size=),bins=,normed=True,color='red',alpha=0.5)
  14. plt.show()   
  1. #绘制直方图
  2. plt.hist(np.random.randn(),bins=,color='b',alpha=0.3)
  3. plt.show()

    (3)散点图scatter

  1. #绘制散点图,x是一个向量,y也是一个向量
  2. x = np.arange()
  3. y = x + *np.random.rand()
  4. plt.scatter(x,y)

    (4)柱状图bar

  1. #柱状图,这个图包括了常规作图的基本的元素
  2. x= np.arange() #要生成5个柱子,就需要生成5个坐标
  3. #下面需要绘制两个柱状图,np.random.randint(,,size=(,))表示生成从1到25的随机整数
  4. #最后生成的形状是2行5列的形状
  5. y1,y2=np.random.randint(,,size=(,))
  6. print(x)
  7. print('y1',y1) #生成的是1到25之间的随机整数,生成的大小是5列的数据
  8. print(type(y1)) #<class 'numpy.ndarray'>
  9. print('y2',y2)
  10. width=0.25 #指定柱子的宽度为0.
  11. ax = plt.subplot(,,) #生成1x1的图,现在在1的位置上
  12. ax.bar(x,y1,width,color='r') #这个地方先画第一组
  13. ax.bar(x+width,y2,width,color='g') #因为现在0,,,,4位置被占据了,现在再在原来的位置上作图会有叠加,挪动的位置就是前面柱子的宽度
  14. ax.set_xticks(x+width) # 将x轴的标记挪动width宽度
  15. ax.set_xticklabels(['a','b','c','d','e']) #这列设置xlabel的标签
  16. plt.show()
  17.  
  18. #xticks,yticks
  19. #xlable,ylable
  20. #x_lim,y_lim
  21. #title

    (5)矩阵绘图 plt.imshow():混淆矩阵,三个维度的关系,通过颜色来进行分析

  1. import numpy as np
  2.  
  3. #矩阵绘图
  4. m = np.random.rand(,)
  5. print(m)
  6. #interpolation='nearest'输出的时候默认的差值的方法,cmap=plt.cm.ocean设置蓝色的主题
  7. #在机器学习中主要用于绘制混淆矩阵,三分类问题,识别猫狗猪。当类比较多的时候,混淆矩阵就会很有用
  8. plt.imshow(m,interpolation='nearest',cmap=plt.cm.ocean)
  9. plt.colorbar()
  10. plt.show()

  (6)绘制子图

  1. #subplots(,2s)是指定数据是几行几列,这里绘图是两行两列的子图
  2. fig,subplot_arr = plt.subplots(,)
  3. #这里是指定在0行0列的位置上绘制直方图,这是一个正常的情况
  4. subplot_arr[][].hist(np.random.randn(),color='b',alpha=0.3)
  5. plt.show()

  (7)颜色、标记、线型

  ax.plot(x,y,'r--'):等价于ax.plot(x,y,linestyle='--',color='r')

     颜色:b blue

        g:green

        r:red

        c:cyan

        m:magenta

        y:yello

        k:black

        w:white

  (8)刻度、标签和图例

    设置刻度范围

      plt.xlim(),plt.ylim()

      ax.set_xlim(),ax.set_ylim()

    设置显示的刻度

      plt.xticks(),plt.yticks()

    设置刻度标签

      ax.set_xticklabels(),ax.set_yticklabels()

    设置坐标轴标签

      ax.set_xlabel(),ax.set_ylabel()  

    设置标题:ax.set_title()

    图例

      ax.plot(label='legend')

      ax.legend()、plt.legent()

        loc='best'   自动选择放置图例的最佳位置

  1. fig,ax = plt.subplots()
  2. ax.plot(np.random.randn().cumsum(),label='line0')
  3. #设置刻度
  4. ax.set_xlim([,])
  5.  
  6. #设置显示的刻度
  7. ax.set_xticks(range(,,))
  8.  
  9. #设置刻度标签
  10. ax.set_yticklabels(['Jan','Feb','Mar'])
  11. #设置坐标轴的标签
  12. ax.set_xlabel('Number')
  13. ax.set_ylabel('Month')
  14.  
  15. #设置标题
  16. ax.set_title('Example')
  17. #图例
  18. ax.plot(np.random.randn().cumsum(),label='学校')
  19. ax.plot(np.random.randn().cumsum(),label='line2')
  20. ax.legend()
  21. ax.legend(loc='best')
  22. plt.legend()

    (9)matplotlib设置

      plt.rc()

二、Seaborn

    1.什么是Seaborn

      (1)Python找那个的一个制图工具库,可以制作出吸引人的、信息量大的统计图

      (2)在Matplotlib上构建,支持numpy和pandas数据结构的可视化,甚至是scipy和statsmodels的统计模型的可视化

    2.特点:

      (1)多个内置主题以及颜色主题

      (2)可视化单一变量、二维变量用于比较数据中各变量的分布情况

      (3)可视化线性回归模型中的独立变量以及不独立的变量

      (4)可视化矩阵数据,通过聚类算法探究矩阵间的结构

      (5)可视化书剑序列的数据以及不确定性的展示

      (6)可在分割区域制图,用于复杂的可视化

    3.安装

      conda install seaborn

      pip install seaborn

    4.数据集分布可视化

      (1)单变量分布 sns.distplot()

      (2)直方图:sns.distplot(kde=False)

      (3)核密度估计:sns.distplot(hist=False)或者sns.kdeplot()

      (4)拟合参数分布:sns.distplot(kds=False,fit=)

      (5)双变量分布

      (6)散布图:sns.jointplot()

      (7)二维直方图 Hexbin sns.jointplot(kind = 'hex')

      (8)核密度估计sns.jointplot(kind='kde')

      (9)数据集中变量之间的可视化 sns.pairplot()

三、Bokeh

  1.什么是Bokeh?

    (1)专门针对Web浏览器的交互式、可视化Python会图库

    (2)可以做出像D3.js简洁漂亮的交互可视化效果

  2.特点:

    (1)独立的HTML文档或者服务端程序

    (2)可以处理大量、动态或者数据流

    (3)支持Python(或者Scala,R,Julia......)

  3.安装

    (1)conda install bokeh

    (2)pip install bokeh

  4.bokeh接口

    (1)Charts:高层接口,以简单的方式绘制复杂的统计图

    (2)Plotting:中层接口,用于组装图形元素

    (3)Models:底层接口,为开发者提供了最大的灵活性

  5.包引用

    (1)from bokeh.io import outpu_file生成html文档

    (2)from bokeh.io import output_notebook在jupyter中使用

  6.bokeh.charts

    (1)散点图   Scatter

    (2)柱状图  Bar

    (3)盒子图  BoxPlot

    (4)...............

python学习笔记(14):可视化分析的更多相关文章

  1. tornado学习笔记14 HTTP1ServerConnection分析

            代表HTTP/1.x 类型的服务器连接,负责处理HTTP/1.x类型的请求. 14.1 构造函数 def __init__(self, stream, params=None, con ...

  2. python学习笔记14(多态、封装、继承)

    创建自已的对象(尤其是类型或者被称为类的对象)是python非常核心的概念. 多态: 可对不同类的对象使用同样的操作. 封装:对外部世界隐藏对象的工作细节. 继承:以普通的类为基础建立专门的类对象. ...

  3. Python学习笔记14—模块

    在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...

  4. Python学习笔记14:标准库之信号量(signal包)

    signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...

  5. Python 学习笔记14 类 - 使用类和实例

    当我们熟悉和掌握了怎么样创建类和实例以后,我们编程中的大多数工作都讲关注在类的简历和实例对象使用,修改和维护上. 结合实例我们来进一步的学习类和实例的使用: 我们新建一个汽车的类: #-*- codi ...

  6. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  7. Python学习笔记总结

    目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...

  8. UML和模式应用学习笔记-1(面向对象分析和设计)

    UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...

  9. Python学习笔记(十)

    Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...

随机推荐

  1. 【canvas学习笔记三】样式和颜色

    上一节我们学习了如何用路径绘制各种形状,但我们只能用默认的颜色和线条.这节就来学习设置不同的颜色和线条样式. 颜色 设置颜色主要有两个属性: fillStyle = color 设置填充颜色 stro ...

  2. Python3学习笔记(九):赋值,浅拷贝和深拷贝区别

    一.变量赋值 在Python可变数据类型(列表,字典,集合)中,把一个可变数据类型的变量赋给另一个变量,这两个变量引用的是同一个对象,内存地址是一样的,修改当中的一个变量,另一个变量相应也会被修改 & ...

  3. select * from (XXXXX)[字符]——写法解析

    步骤:1.先执行括号里的语句:查询 select id from three ,将查询出来的数据作为一个结果集 取名为 a2.然后 再 select * from a 查询a ,将 结果集a 全部查询 ...

  4. 基于数组阻塞队列 ArrayBlockingQueue 的一个队列工具类

    java语言基于ArrayBlockingQueue 开发的一个根据特定前缀和后缀的队列.每天自动循环生成. 1.定义队列基类 Cookie package com.bytter.util.queue ...

  5. android遮罩阴影对话框的实现

    定义 <style name="MyDialog" parent="@android:Theme.Dialog"> <item name=&q ...

  6. JDK中String类的源码分析(一)

    1.String类是final的,不允许被继承 /** The value is used for character storage. */ private final char value[]; ...

  7. iOS AES-CBC、AES-ECB 加解密

    简介 AES是加密的算法,使用128.192 和 256 位密钥,将被加密数据划分为128位(16字节)一块,然后使用某种加密模式进行加密 关键词: 块大小:16字节 密钥长度:AES算法下,key的 ...

  8. HTTP缓存初识

    一.HTTP缓存 1.强制缓存 2.协商缓存 静态资源 动态资源 二.总结 参考: http://muchstudy.com/2016/08/18/HTTP%E7%BC%93%E5%AD%98%E8% ...

  9. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_1 回顾Mybatis的环境搭建-实现查询所有功能

    先回顾Mybits的环境搭建,. 直接next 直接点击finish 创建好的项目. 所有东西都自己写不现实,约束文件的头部还是拷贝过来 导入依赖坐标,Mybits mysql的驱动 log4j 单元 ...

  10. python学习笔记:(五)列表与元组的异同

    在python中最基本的数据结构是序列(sequence),每一个元素被分配一个序号,即元素的位置,也称为索引,第一个索引是0,第二个则是1 元组与列表最大的区别就是: 元组不能更改:列表可以修改 p ...