seaborn关联图表之折线图和散点图
折线图和散点图是最常用的展示两个变量间关系的图表,在seaborn中,通过以下两个函数来绘制对应的图形
1. satterplot, 绘制散点图
2. lineplot, 绘制折线图
seaborn采用了类似ggplot2的语法,每个变量为数据框的某一列,对于散点图和折线图而言,基本的变量就是x和y两个变量了。除此之外,其他列的变量可以作为属性的映射,常用的属性映射列表如下
1. hue, 用于映射颜色
2. size,用于映射线条的宽度或者点的大小
3. style, 用于映射线条的样式或者点的样式
散点图的代码示例如下
>>> df = pd.read_csv('tips.csv')
>>> sns.scatterplot(data=df, x="total_bill", y="tip", hue="day", style="time", size="size")
>>> plt.show()
输出结果如下
折线图的代码示例如下
>>> sns.lineplot(data=df, x="total_bill", y="tip", hue="day", style="time", size='size')
输出结果如下
seaborn会自动进行属性映射,并将对应的属性添加到图例上,在映射时,我们可以通过以下两类参数来控制对应的映射属性
1. order
该系列包含了以下3个参数
1. hue_order
2. size_order
3. style_order
分别用于指定不用属性的排列情况,以hue_order为例,基本用法如下
>>> sns.scatterplot(data=df, x="total_bill", y="tip", hue="day", style="time", size='size', hue_order=['Fri','Thur','Sat','Sun'])
输出结果如下
从图例可以看出,会按照hue_order自定的顺序去映射颜色梯度,其实style属性也是类似的效果。但是有一个例外,就是size属性,当size属性对应的列为数值时,seaborn会自动将数值设置为点的大小,此时指定size_order属性时没用的。
2. norm
order系列参数控制离散变量的映射过程,而norm系列函数用于映射连续变量的映射过程,也就是当对应列为数值时的映射过程,。和order系列函数类似,norm系列包含了hue_norm和size_norm两个参数。
以hue_norm参数为例,用法如下
>>> sns.scatterplot(data=df, x="total_bill", y="tip", hue="size", style="time", hue_norm=(2, 5))
输出结果如下
seaborn会自动根据属性组合进行图例的显示,示例如下
sns.scatterplot(data=df, x="total_bill", y="tip", hue="day", style="day")
上述代码将hue和style属性映射为同一个变量,在图例中,自动将这两种属性进行了组合,输出结果如下
当多个属性对应不同变量时,就会每种属性单独一个图例显示。
scatterplot专门用于绘制散点图,lineplot用于绘制折线图,而relplot则可以在灵活调用这两个函数来绘图,而且添加了分面的支持,用法如下
>>> sns.relplot(data=df, x="total_bill", y="tip", hue="day", col="time")
输出结果如下
如果需要多幅图之间的排列比对,选择relplot这种figure-level级别的函数来实现会更加简单,如果只需要单幅图,用scatterplot和lineplot更高效。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 技巧篇-让我的程序暂停一下
- Python+selenium 技术篇-浏览器后台运行
- Python 基础篇-python3安装pyHook和pywin32库
- 漫画:如何螺旋遍历二维数组?(修订版)
- 一文快速入门分库分表(必修课)
- 写出漂亮 Python 代码的 20条准则
- 简单red5+obs推流实现直播系统开发,具体设置介绍
- 使用pandas进行数据快捷加载
- 关于 JavaScript 中 null 的一切
- 总结 | DataFrame、Series、array、tensor的创建及相互转化
- 这就是你日日夜夜想要的docker!!!---------Harbor私有仓库
- Go by Example 中文版: 写文件
- PWN:House Of Force
- Windwos10下使用VS2017搭建cocos2d-x 4.0开发环境
- JavaScript 中的函数式编程:函数,组合和柯里化