一、Matplotlib

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

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

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

  4.figure

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

#引入 matplotlib包
import matplotlib.pyplot as plt
%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绘制统计图

#在一张图上做子图
ax1 = fig.add_subplot(,,)
ax2= fig.add_subplot(,,)
ax3=fig.add_subplot(,,)
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()

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

    (3)散点图scatter

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

    (4)柱状图bar

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

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

import numpy as np

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

  (6)绘制子图

#subplots(,2s)是指定数据是几行几列,这里绘图是两行两列的子图
fig,subplot_arr = plt.subplots(,)
#这里是指定在0行0列的位置上绘制直方图,这是一个正常的情况
subplot_arr[][].hist(np.random.randn(),color='b',alpha=0.3)
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'   自动选择放置图例的最佳位置

fig,ax = plt.subplots()
ax.plot(np.random.randn().cumsum(),label='line0')
#设置刻度
ax.set_xlim([,]) #设置显示的刻度
ax.set_xticks(range(,,)) #设置刻度标签
ax.set_yticklabels(['Jan','Feb','Mar'])
#设置坐标轴的标签
ax.set_xlabel('Number')
ax.set_ylabel('Month') #设置标题
ax.set_title('Example')
#图例
ax.plot(np.random.randn().cumsum(),label='学校')
ax.plot(np.random.randn().cumsum(),label='line2')
ax.legend()
ax.legend(loc='best')
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. CTSC&APIO 2017游记

    Day 0 早上4点多起床赶飞机,起床的时候发现闹钟调成下午4点的了...(虽然说早就已经被父母的洗漱声音吵醒了) 飞机上碎觉.到了北京发现比福州还热...而且北京今天意外地好天气,没有传言中的&qu ...

  2. Android如何安装系统应用,及自己增加安装系统应用的接口

    根据SIM卡安装系统应用 功能: 1:如何安装系统应用,apk放在system/app系统分区下面. 2:根据SIM卡的归属国家选择性的安装应用. 一:本人使用方法: 在开机的服务里面添加接口(Pac ...

  3. Elasticsear搭建

    2.1:创建用户: (elasticsearch不能使用root用户) useradd angelpasswd angel 2.2:解压安装包 tar -zxvf elasticsearch-5.5. ...

  4. Mysql 创建函数出现This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA

    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary mys ...

  5. ef和ashx的简单测试

    在这里.小弟我默默的计算了一下用一般处理程序和MVC配合EF,到底哪个快,事实问题是我感觉都差不多,因为用的是EF,所以要提高访问速率,我觉得还是要从数据访问做起: 一般处理程序代码: private ...

  6. 五、RF中UI自动化操作基础

    列表分类 1.打开浏览器 Open Browser   url   browser [ url | browser=firefox | alias=None | remote_url=False | ...

  7. 记录一下WPF中自寄宿asp.net服务添加urlacl的问题

    asp.net公开服务地址时,由于当前用户权限问题,会导致服务地址未添加到urlacl池中报错. 关于添加urlacl的细节,请参考我之前的文章:asp.net self host and urlac ...

  8. sqlalchemy 中 desc 的使用

    是这样: items = Item.query.order_by(Item.date.desc()).all() 而不是这样: items = Item.query.order_by(desc(Ite ...

  9. CentOS7_装机软件推荐

    目录 目录 前言 CentOS7中文支持 Install Yum Fastest Mirror Plugin Install Flash Player Install NTFS-3G Install ...

  10. CSS样式div

    页面中,有很多样式标签:div标签,对标签定位的地方有: 1.<head>标签里加<style>标签,在<style>标签中添加样式.如: <style> ...