Python 数据分析中常用的可视化工具
Python 数据分析中常用的可视化工具
1 Matplotlib
用于创建出版质量图表的绘图工具库,目的是为 Python 构建一个 Matlab 式的绘图接口。
1.1 安装
- Anaconada 自带。
- pip 安装
pip install matplotlib
1.2 引用
import matplotlib.pyplot as plt
1.3 常用方法
figure
Matplotlib 的图像均位于 figure 对象中
- 创建 figure
fig = plt.figure()
subplot
fig.add_subplot(a,b,c)
- a,b 表示讲 fig 分割成 axb 的区域
- c 表示当前选中要操作的区域,
注意 ·
:从 1 开始编号 - 返回的是 AxesSubplot 对象
- plot 绘图的区域是最后一次指定 subplot 的位置(jupyter 里不能正确显
示) - 同时返回新创建的 figure 和 subplot 对象数组
fig,subplot arr=plt.subplots(2,2)
在 jupyter 里可以正常显示,推荐使用这种方式创建多个图表
plt.plot()
作图方法。
# 在指定 subplot 作图
import scipy as sp
from scipy import stats
x = np.linspace(-5, 15, 50)
#print x.shape
# 绘制高斯分布
plt.plot(x, sp.stats.norm.pdf(x=x, loc=5, scale=2))
# 叠加直方图
plt.hist(sp.stats.norm.rvs(loc=5, scale=2, size=200), bins=50, normed=True, color='red', alpha=0.5)
plt.show()
绘制直方图
plt.hist(np.random.randn(100), bins=10, color='b', alpha=0.3)
绘制散点图
x = np.arange(50)
y = x + 5 * np.random.rand(50)
plt.scatter(x, y)
柱状图
x = np.arange(5)
y1, y2 = np.random.randint(1, 25, size=(2, 5))
width = 0.25
ax = plt.subplot(1,1,1)
ax.bar(x, y1, width, color='r')
ax.bar(x+width, y2, width, color='g')
ax.set_xticks(x+width)
ax.set_xticklabels(['a', 'b', 'c', 'd', 'e'])
plt.show()
矩阵绘图
m = np.random.rand(10,10)
print(m)
plt.imshow(m, interpolation='nearest', cmap=plt.cm.ocean)
plt.colorbar()
plt.show()
颜色 标记 线型
ax.plot(x,y,'r--')
== ax.plotx,y,linestyle=--',color=r')
刻度、标签、图例
- 设置刻度范围
plt.xlim(),plt.ylim()
ax.set_xlim(),ax.set_ylim()
- 设置显示的刻度
plt.xticks(),plt.yticks()
ax.set_xticks(),ax.set yticks)
- 设置刻度标签
ax.set_xticklabels(),ax.set yticklabels()
- 设置坐标轴标签
- `ax.set_xlabel(),ax.set ylabel0()
- 设置标题
ax.set title()
- 图例
ax.plot(label=legend')
ax.legend),plt.legend()
loc=‘best'
自动选择放置图例最佳位置
matplotlib 设置
plt.rc()
1.4 3D 绘图
matplotlib 支持 3D 绘图
下面代码给出了不同年份中,不同国家的平均寿命。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd
import numpy as np
import matplotlib; matplotlib.style.use('ggplot')
%matplotlib inline
# 读取 csv 数据集
lexp = pd.read_csv('lexpectancy.csv')
lexp.dropna(inplace=True)
lexp.reset_index(inplace=True)
plot_data = lexp[['Country', '1960', '1970', '1980', '1990', '2000']][:3]
print(plot_data)
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')
country_list = plot_data['Country'].values.tolist()
year_list = ['1960', '1970', '1980', '1990', '2000']
for i, (color, z) in enumerate(zip(['r', 'g', 'b'], [0, 10, 20])):
age_list = plot_data.iloc[i][1:].values.tolist()
xs = np.arange(len(age_list))
ys = age_list
cs = [color] * len(age_list)
ax.bar(xs, ys, zs=z, zdir='y', color=cs, alpha=0.8)
ax.set_xticklabels(year_list)
ax.set_yticks([0, 10, 20])
ax.set_yticklabels(country_list)
ax.set_xlabel('Year')
ax.set_ylabel('Country')
ax.set_zlabel('Age')
更多参考 mplot3d tutorial
2 Seaborn
什么是 Seaborn
- Python 中的一个制图工具库,可以制作出吸引人的、信息量大的统计图
- 在 Matplotlib 上构建,支持 numpy 和 pandas 的数据结构可视化,甚至是 scipy 和 statsmodels 的统计模型可视化
特点
- 多个 内置主题 及颜色主题
- 可视化 单一变量、二维变量 用于 比较 数据集中各变量的分布情况
- 可视化 线性回归模型 中的 独立变量 及不独立变量
- 可视化矩阵数据,通过聚类算法探究矩阵间的结构
- 可视化 时间序列数据 及不确定性的展示
- 可在 分割区域制图,用于复杂 的可视化
2.2 安装
conda 安装:conda install seaborn
pip 安装:pip install seaborn
2.3 引用
import seaborn as sns
2.4 数据集分布可视化
- 单变量分布
sns.distplot)
- 直方图
sns.distplot(kde=False)
- 核密度估计
sns.distplot(hist=False)或 sns.kdeplot)
- 拟合参数分布
sns.distplot(kde=False,fit=)
- 直方图
- 双变量分布
- 散布图
sns.jointplot0
- 二维直方图
Hexbin sns.jointplot(kind=‘hex)
- 核密度估计
sns.jointplot(kind=‘kde')
- 散布图
- 数据集中变量间关系可视化
sns.pairplot()
2.5 类别数据可视化
- 类别散布图
sns.stripplot()
数据点会重叠sns.swarmplot()
数据点避免重叠- hue 指定子类别
- 类别内数据分布
- 盒子图
sns.boxplot()
,hue 指定子类别 - 小提琴图
sns.violinplot()
,hue 指定子类别
- 盒子图
- 类别内统计图
- 柱状图
sns.barplot()
- 点图
sns.pointplot()
- 柱状图
3 Bokeh
什么是 Bokeh
- 专门针对 Web 浏览器的交互式、可视化 Python 绘图库
- 可以做出像 D3.,js 简洁漂亮的交互可视化效果
特点
- 独立的 HTML 文档或服务端程序
- 可以处理大量、动态或数据流
- 支持 Python(或 Scala,R,Julia.)
- 不需要使用 Javascript
Bokeh 接口
- Charts:高层接口,以简单的方式绘制复杂的统计图
- Plotting:中层接口,用于组装图形元素
- Models:底层接口,为开发者提供了最大的灵活性
3.1 安装
conda 安装:conda install bokeh
pip 安装:pip install bokeh
3.2 引用
- 生成. html 文档
from bokeh.io import output file
- 在 jupyter 中使用
from boken.io import output_notebook
3.3 bokeh.charts
引用和导入数据
# 引用
from bokeh.io import output_notebook, output_file, show
from bokeh.charts import Scatter, Bar, BoxPlot, Chord
from bokeh.layouts import row
import seaborn as sns
# 导入数据
exercise = sns.load_dataset('exercise')
# 在使用 Jupyter notebook 时设置
output_notebook()
散点图
p = Scatter(data=exercise, x='id', y='pulse', title='exercise dataset')
show(p)
柱状图
p = Bar(data=exercise, values='pulse', label='diet', stack='kind', title='exercise dataset')
show(p)
盒子图
box1 = BoxPlot(data=exercise, values='pulse', label='diet', color='diet', title='exercise dataset')
box2 = BoxPlot(data=exercise, values='pulse', label='diet', stack='kind', color='kind', title='exercise dataset')
show(row(box1, box2)) # 显示两张图
弦图 Chord
- 展示多个节点之间的联系
- 连线的粗细代表权重
chord1 = Chord(data=exercise, source="id", target="kind")
# value 设置以什么为粗细
chord2 = Chord(data=exercise, source="id", target="kind", value="pulse")
show(row(chord1, chord2))
更多参考:Bokeh 官网
3.4 bokeh.plotting
from bokeh.plotting import figure
import numpy as np
p = figure(plot_width=400, plot_height=400)
# 方框
p.square(np.random.randint(1,10,5), np.random.randint(1,10,5), size=20, color="navy")
# 圆形
p.circle(np.random.randint(1,10,5), np.random.randint(1,10,5), size=10, color="green")
show(p)
更多图形元素参考:Bokeh 官网
Python 数据分析中常用的可视化工具的更多相关文章
- python数据分析中常用的库
Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...
- 【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- Python编程中常用的12种基础知识总结
原地址:http://blog.jobbole.com/48541/ Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时 ...
- Linux中常用压缩打包工具
Linux中常用压缩打包工具 压缩打包是常用的功能,在linux中目前常用的压缩工具有gzip,bzip2以及后起之秀xz.本文将介绍如下的工具常见压缩.解压缩工具以及打包工具tar. gzip2 直 ...
- Java工作中常用到的工具
刚看但网上一篇Java最流行工具的文章,结合自己日常应用总结一下开发工作中常用到的工具. 一,Java版本,jdk8,也是Java普及最快的版本,除了本身性能提升外,新增的函数式编程特性也让开发效率更 ...
- 第8.34节 《Python类中常用的特殊变量和方法》总结
本章介绍了Python类中常用的特殊变量和方法,这些特殊变量和方法都有特殊的用途,是Python强大功能的基石之一,许多功能非常有Python特色.由于Python中一切皆对象,理解这些特殊变量和方法 ...
- 第8章 Python类中常用的特殊变量和方法目录
第8章 Python类中常用的特殊变量和方法 第8.1节 Python类的构造方法__init__深入剖析:语法释义 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解 第8. ...
- 数据分析中常用的Excel函数
数据分析中excel是一个常见且基础的数据分析工具,要想掌握好它,学会使用其中的常用函数是一个绕不过去的坎.从网上搜集的资料来说,基本上确定了数据分析中Excel的常用函数有以下这六类 数学函数:SU ...
- Python数据分析--Numpy常用函数介绍(9)-- 与线性代数有关的模块linalg
numpy.linalg 模块包含线性代数的函数.使用这个模块,可以计算逆矩阵.求特征值.解线性方程组以及求解行列式等.一.计算逆矩阵 线性代数中,矩阵A与其逆矩阵A ^(-1)相乘后会得到一个单位矩 ...
随机推荐
- java:序列化Serializable 接口
java:序列化Serializable 接口 public class SerializePerson implements Serializable { private String name; ...
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\......”--“拒绝访问。 ”错误
1.通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: C:\Windows\temp-->属性-->安全-->编辑-->添加NETWORK S ...
- vue制作分页
怎么制作分页?得先把思路路通顺了才可以. 我制作过程中遇到3个问题: 1,问:制作分页需要什么数据?怎么关联起来? 答:分页数据内容包含几部分, 1,当前是第几页?或则说当前默认是第几页. ...
- vue路由传参并跳转页面
在vue项目中参数的传递可以使用本地缓存或者Vuex,那么vue能不能像小程序一样路由传参呢,显然是可以的而且非常简单 方式一:query传参 //传参 go(){ that.$router.push ...
- asp.net (web)选择文件夹 上传文件
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- JSP XML数据处理
JSP XML数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档.作为一个XML文档,它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创建 ...
- Linux基础命令及使用帮助
一.内部命令 内置命令(builtin):由shell程序自带的命令 help:查看内部命令 enable -n command 禁用某内部命令 enable -n 查看全部被禁用的命令 enable ...
- [CSP-S模拟测试]:排列组合(数学 or 找规律)
题目描述 $T$组数据,每次给定$n$,请求出下式的值,对$10^9+7$取模: $$C_n^0\times C_n^0+C_n^1\times C_n^1+C_n^2\times C_n^2+... ...
- python的filter,reduce,map
1.filter filter(func,iter) 只能处理一个参数(iter),仅仅将满足func方法的数值过滤出来 如: a = [,,,,] list(filter(lambda x:x> ...
- Oracle-buffer cache、shared pool
http://blog.csdn.net/panfelix/article/details/38347059 buffer pool 和shared pool 详解 http://blog.csd ...