一、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. CDOJ 1057 秋实大哥与花 线段树 区间更新+区间查询

    链接: I - 秋实大哥与花 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit ...

  2. 【gym102394L】LRU Algorithm(自然溢出哈希)

    题意:给定一个n个数的数字序列,第i个数为a[i],每次操作会将a[i]插入或移到最前端: 1.若a[i]已经在序列中出现过,则将其移到最前端,并删除原出现位置 2.若a[i]未出现过,则直接将其插入 ...

  3. prometheus 监控项

    此处记录prometheus监控项,exporter为 node_exporter vim rules.yml groups: - name: node rules: - alert: server_ ...

  4. Java数据结构之排序---快速排序

    快速排序是对冒泡排序的一种改进. 快速排序的基本思想: 假设我们以升序为例,它的执行流程可以概括为,每一趟选择当前所有子序列中的一个关键字(通常我们选择第一个,下述代码实现选择的也是第一个数)作为枢纽 ...

  5. leetcode-mid-sorting and searching-75. Sort Colors-NO

    mycode   97.95% class Solution(object): def sortColors(self, nums): """ :type nums: L ...

  6. NAACL 2019 字词表示学习分析

    NAACL 2019 表示学习分析 为要找出字.词.文档等实体表示学习相关的文章. word embedding 搜索关键词 word embedding Vector of Locally-Aggr ...

  7. 【ASK】设置网卡启动遇到的事!

    上次动笔是16年的事情了,一晃3年过去了.算了,不感慨了.直奔主题吧. 1.今天朋友要把一批win10的机器设置成网卡启动. 2.网卡是intel集成的. 3.按照主板说明已经设置成功. 4.通过wi ...

  8. OpenStack Nova 高性能虚拟机之 CPU 绑定

    目录 文章目录 目录 前文列表 KVM KVM 的功能列表 KVM 工具集 KVM 虚拟机的本质是什么 vCPU 的调度与性能问题 Nova 支持的 vCPU 绑定 vcpu\_pin\_set 配置 ...

  9. nginx实现域名跳转

    server { listen 80; server_name www.dd.com www.tt.com; index index.html index.htm index.php; root /u ...

  10. Linux 下创建静态库和动态库

    1.创建静态链接库 2.创建动态链接库