python学习笔记(14):可视化分析
一、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):可视化分析的更多相关文章
- tornado学习笔记14 HTTP1ServerConnection分析
代表HTTP/1.x 类型的服务器连接,负责处理HTTP/1.x类型的请求. 14.1 构造函数 def __init__(self, stream, params=None, con ...
- python学习笔记14(多态、封装、继承)
创建自已的对象(尤其是类型或者被称为类的对象)是python非常核心的概念. 多态: 可对不同类的对象使用同样的操作. 封装:对外部世界隐藏对象的工作细节. 继承:以普通的类为基础建立专门的类对象. ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- Python学习笔记14:标准库之信号量(signal包)
signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...
- Python 学习笔记14 类 - 使用类和实例
当我们熟悉和掌握了怎么样创建类和实例以后,我们编程中的大多数工作都讲关注在类的简历和实例对象使用,修改和维护上. 结合实例我们来进一步的学习类和实例的使用: 我们新建一个汽车的类: #-*- codi ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- Python学习笔记总结
目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...
- UML和模式应用学习笔记-1(面向对象分析和设计)
UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...
- Python学习笔记(十)
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...
随机推荐
- 【bzoj4562】[Haoi2016]食物链
*题目描述: 如图所示为某生态系统的食物网示意图,据图回答第1小题 现在给你n个物种和m条能量流动关系,求其中的食物链条数. 物种的名称为从1到n编号 M条能量流动关系形如 a1 b1 a2 b2 a ...
- 洛谷P2482 [SDOI2010]猪国杀——题解
猪国杀,模拟题的一颗耀眼的明珠,成长大牛.锻炼码力必写题! 模拟题没什么思维难度.只要按部就班地去做就是.模拟简单在这,难也在这.因为题面巨长,条件巨多,忽疏一点都有可能全盘皆输.故推荐考试时碰见了, ...
- mac 的 quickTime Player 设置播放速度
按住 option 点击 下一个视频的图标每次调整幅度为0.1,大于 1.9 声音会消失. 按住 option+J 调慢播放速度 option+L 调快播放速度 每次调整幅度为0.1
- 分布式架构基石-TCP通信协议
为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样 ...
- [design pattern](5) Factory Method
前言 在前面一章博主介绍了简单工厂模式(Simple Factory),接着上面的章节,今天博主就来介绍下工厂方法模式(Factory Method). 思考题 首先,让我们来思考下面的问题: 在上一 ...
- Mongodb分片副本集集群搭建
一.环境准备 1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0) 序号 主机名 IP 1 DB_01 10.202.105.52 2 DB_02 10.202.105.53 3 DB_0 ...
- 密度聚类 DBSCAN
刘建平:DBSCAN密度聚类算法 https://www.cnblogs.com/pinard/p/6208966.html API 的说明: https://www.jianshu.com/p/b0 ...
- mvn deploy上传私服Nexus时遇到的坑--ReasonPhrase: Forbidden.
用maven deploy上传jar包时,遇到了ReasonPhrase: Forbidden 错误,截图如下: 折腾了好久,终于解决,现把步骤简单记录如下: 1.自建仓库eagle-sky: 2.设 ...
- 大数据笔记(三十)——一篇文章读懂SparkSQL
Spark SQL:类似Hive ======================================================= 一.Spark SQL基础 1.什么是Spark SQ ...
- java实验报告&第三周学习总结
实验报告: 实验1:求水仙花数在C语言中求水仙花数是一个复杂且长的代码,在java中可以通过简单的代码来实现操作,找出水仙花数: 图例如下: 试验2:求13+23-33+43-53.........9 ...