python之seaborn画图库学习绘制常用的图
2017-09-24 15:58
459 查看
github地址:https://github.com/xiaoping1988/ping-ml
导入相关库
import seaborn as sbn import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline sbn.set(font_scale=1.7) #设置字体大小 ## 5种主题风格,darkgrid、whitegrid、dark、white、ticks #常用参数配置 #x,y,hue 数据集变量 变量名 #date 数据集 数据集名 #row,col 更多分类变量进行平铺显示 变量名 #col_wrap 每行的最高平铺数 整数 #estimator 在每个分类中进行矢量到标量的映射 矢量 #ci 置信区间 浮点数或None #n_boot 计算置信区间时使用的引导迭代次数 整数 #units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据 #order, hue_order 对应排序列表 字符串列表 #row_order, col_order 对应排序列表 字符串列表 #kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点 size 每个面的高度(英寸) 标量 aspect 纵横比 标量 orient 方向 "v"/"h" color 颜色 matplotlib颜色 palette 调色板 seaborn颜色色板或字典 legend hue的信息面板 True/False legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False share{x,y} 共享轴线 True/False
主题颜色
## 默认6种颜色主题 sbn.palplot(sbn.color_palette()) ## 获取超过默认6种的颜色 sbn.palplot(sbn.color_palette("hls", 10)) # 渐变色画板 # 由浅到深 sbn.palplot(sbn.color_palette("Blues")) # 由深到浅,后面加'_r' sbn.palplot(sbn.color_palette("Blues_r")) sbn.palplot(sbn.color_palette("BuGn")) sbn.palplot(sbn.color_palette("BuGn_r")) # 色调线性变换 sbn.palplot(sbn.color_palette("cubehelix", 8)) sbn.palplot(sbn.color_palette("cubehelix_r", 8))
折线图
## 画子图,设定不一样的风格 def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 7): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) with sbn.axes_style('dark'): ## 设置子图风格 plt.subplot(211) sinplot() sbn.set_style('ticks') plt.subplot(212) sinplot()
盒图
# 盒图 data = np.random.normal(size=(20, 6)) + np.arange(6) / 2 sbn.set_style('ticks') sbn.set(font_scale=1.7) plt.figure(figsize=(20,10)) plt.subplot(121) sbn.boxplot(data=data) sbn.despine() ## 去掉上边和右边的线 ## 画超过默认6种颜色的图 plt.subplot(122) data2 = np.random.normal(size=(20, 8)) + np.arange(8) / 2 sbn.boxplot(data=data2,palette=sbn.color_palette("Paired", 8)) plt.show()
盒图2
## 盒图 tips = sbn.load_dataset("tips") plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) plt.subplot(121) sbn.boxplot(x="day", y="total_bill", hue="time", data=tips) plt.subplot(122) sbn.boxplot(x="total_bill", y="day", hue="time", data=tips) plt.show()
小提琴图
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2 sbn.set_style('ticks') sbn.violinplot(data) sbn.despine() ## 去掉上边和右边的线 plt.show()
小提琴图2
## 小提琴图 tips = sbn.load_dataset("tips") plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) plt.subplot(121) sbn.violinplot(x="day", y="total_bill", hue="time", data=tips) plt.subplot(122) sbn.violinplot(x="day", y="total_bill", hue="time", data=tips,split=True) plt.show()
小提琴图和蜂群图结合
## 小提琴图和蜂群图结合 tips = sbn.load_dataset("tips") plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) sbn.violinplot(x="day", y="total_bill", data=tips, inner=None) sbn.swarmplot(x="day", y="total_bill", data=tips, color="w", alpha=.5) plt.show()
直方图
# 直方图,观察单变量的分布 from scipy import stats, integrate x = np.random.normal(size=100) # 高斯数据 sbn.distplot(x,bins=20,kde=False,fit=stats.gamma) # bins:数据分成多少份 plt.show()
散点图
# 散点图,观察两个变量之间的关系 mean, cov = [0, 1], [(1, 0.5), (0.5, 1)] # 均值,方差 data = np.random.multivariate_normal(mean, cov, 200) # 根据均值,方差生成数据 df = pd.DataFrame(data, columns=["x", "y"]) print(df.head()) print(df.mean()) plt.figure(figsize=(20,10)) sbn.set_style('darkgrid') sbn.jointplot(x='x',y='y',data=df) plt.show()
hex图
mean, cov = [0, 1], [(1, 0.5), (0.5, 1)] # 均值,方差 data = np.random.multivariate_normal(mean, cov, 1000) # 根据均值,方差生成数据 df = pd.DataFrame(data, columns=["x", "y"]) print(df.head()) print(df.mean()) sbn.set_style('white') sbn.jointplot(x='x',y='y',data=df,kind="hex", color="k") plt.show()
多特征,两两组合观察变量关系
# 多特征,两两组合观察变量关系 iris = sbn.load_dataset("iris") sbn.pairplot(iris) plt.show()
回归分析图绘制
# 回归分析图绘制 tips = sbn.load_dataset("tips") print(tips.head()) plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) #regplot()和lmplot()都可以绘制回归关系,推荐regplot() plt.subplot(121) sbn.regplot(x='total_bill',y='tip',data=tips) ## 添加浮动范围x_jitter plt.subplot(122) sbn.regplot(x='size',y='tip',data=tips,x_jitter=0.08) plt.show()
蜂群图,多变量分析绘图
# 蜂群图,多变量分析绘图 tips = sbn.load_dataset("tips") sbn.set(font_scale=1.7) plt.figure(figsize=(20,15)) plt.subplot(221) sbn.stripplot(x="day", y="total_bill", data=tips,jitter=True) plt.subplot(222) sbn.swarmplot(x="day", y="total_bill", data=tips) plt.subplot(223) sbn.swarmplot(x="day", y="total_bill", hue="sex",data=tips) plt.subplot(224) sbn.swarmplot(x="total_bill", y="day", hue="sex",data=tips) plt.show()
柱状图
# 柱状图 tips = sbn.load_dataset("tips") plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) sbn.barplot(x="time", y="total_bill", hue="day", data=tips) plt.show()
点图,查看趋势
# 点图,查看趋势 tips = sbn.load_dataset("tips") plt.figure(figsize=(20,10)) sbn.set(font_scale=1.7) sbn.pointplot(x="day", y="total_bill", hue="time", data=tips) plt.show()
热力图
# 热力图 flights = sbn.load_dataset("flights") print(flights.head()) plt.figure(figsize=(20,10)) flights = flights.pivot("month", "year", "passengers") print (flights) sbn.heatmap(flights,annot=True,fmt="d", linewidths=0.5, cmap="YlGnBu") plt.show()
相关文章推荐
- Python图表绘制:matplotlib绘图库入门
- python学习笔记(十二) - 常用内建模块
- python学习—Day37—redis的hash类型及其他常用类型
- 【python学习笔记】30:非函数形式但可用方程描绘的决策线的寻找和绘制
- Python学习(一)常用函数
- [python学习] 简单爬取图片网站图库中图片
- python【第五篇】常用模块学习
- Python基础学习-列表的常用方法
- Python学习之常用内置模块:urlib
- Python 学习笔记(四):常用内建模块和第三方模块
- python之numpy库学习常用函数(矩阵运算)
- python学习笔记——Thread常用方法
- [Python] Python学习笔记之常用模块总结[持续更新...]
- Python 学习-常用工具
- Caffe学习:绘制loss和accuracy曲线(使用caffe的python接口)
- python开发学习-day05(正则深入、冒泡排序算法、自定义模块、常用标准模块)
- Python修炼--常用字符串、数学函数 分类: python基础学习 2013-06-16 13:23 205人阅读 评论(0) 收藏
- Python图表绘制:matplotlib绘图库入门
- python 深度学习 常用库说明
- python 常用代码学习笔记之commands模块