https://datawhalechina.github.io/pms50/#/chapter3/chapter3

如果你想了解两个变量如何相互改变,那么最佳拟合线就是常用的方法。 下图显示了数据中各组之间最佳拟合线的差异。 要禁用分组并仅为整个数据集绘制一条最佳拟合线,请从下面的 sns.lmplot()调用中删除 hue ='cyl'参数。

导入所需要的库

  1. # 导入numpy库
  2. import numpy as np
  3. # 导入pandas库
  4. import pandas as pd
  5. # 导入matplotlib库
  6. import matplotlib as mpl
  7. import matplotlib.pyplot as plt
  8. # 导入seaborn库
  9. import seaborn as sns
  10. # 在jupyter notebook显示图像
  11. %matplotlib inline

设定图像各种属性

  1. large = 22; med = 16; small = 12
  2. # 设置子图上的标题字体
  3. params = {'axes.titlesize': large,
  4. # 设置图例的字体
  5. 'legend.fontsize': med,
  6. # 设置图像的画布
  7. 'figure.figsize': (16, 10),
  8. # 设置标签的字体
  9. 'axes.labelsize': med,
  10. # 设置x轴上的标尺的字体
  11. 'xtick.labelsize': med,
  12. # 设置整个画布的标题字体
  13. 'ytick.labelsize': med,
  14. 'figure.titlesize': large}
  15. # 更新默认属性
  16. plt.rcParams.update(params)
  17. # 设定整体风格
  18. plt.style.use('seaborn-whitegrid')
  19. # 设定整体背景风格
  20. sns.set_style("white")

程序代码

# step1:导入数据

  1. df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")
  2.  
  3. # 选择cyl为4,8的数据集
  4. df_select = df.loc[df.cyl.isin([4, 8]), :]

# step2:绘图

  1. # 设立风格
  2. sns.set_style('white')
  3.  
  4. gridobj = sns.lmplot(x = 'displ', # 横坐标
  5. y = 'hwy', # 纵坐标
  6. hue = 'cyl', # 定义被绘制数据的子集
  7. data = df_select, # 绘图所需要的数据集
  8. height = 7, # 每个子图的高度
  9. aspect = 1.6, # 每个子图的宽高比
  10. robust = True, # 抗噪声鲁棒性
  11. palette = 'tab10', # 调色板(不同层次的“色调”变量)
  12. # 设置其它参数
  13. scatter_kws = dict(s = 60, linewidths = .7, edgecolors = 'black'))

# step3:装饰

  1. # 横纵坐标范围
  2. gridobj.set(xlim = (0.5, 7.5), ylim = (0, 50))
  3. # 设置标题
  4. plt.title("Scatterplot with line of best fit grouped by number of cylinders", fontsize=20)
  5. # 显示图像
  6. plt.show()

# step1:导入数据

  1. df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")
  2.  
  3. # 选择cyl为4,8的数据集
  4. df_select = df.loc[df.cyl.isin([4, 8]), :]

# step2:绘图

  1. # 设立风格
  2. sns.set_style('white')
  3.  
  4. gridobj = sns.lmplot(x = 'displ', # 横坐标
  5. y = 'hwy', # 纵坐标
  6. hue = 'cyl', # 定义绘制数据的子集
  7. data = df_select, # 绘图所需要的数据集
  8. height = 7, # 每个子图的高度
  9. robust = True, # 抗噪声鲁棒性
  10. palette = 'Set1', # 调色板(不同层次的“色调”变量)
  11. col = 'cyl', # 按照类别绘制图像,一个类别一张图像
  12. # 设置其它参数
  13. scatter_kws = dict(s = 60, linewidths = .7, edgecolors = 'black'))

# step3:装饰

  1. # 横纵坐标范围
  2. gridobj.set(xlim = (0.5, 7.5), ylim = (0, 50))
  3. # 设置标题
  4. plt.title("Scatterplot with line of best fit grouped by number of cylinders", fontsize=20)
  5. # 显示图像
  6. plt.show()

博文总结

索引

  • .loc[ ]__标签索引
  • .iloc[ ]__位置索引

sns.lmplot

  • 回归模型绘制
  • 参数
    • x__横坐标标称
    • y__纵坐标标称
    • hue__定义被绘制数据的子集
    • data__绘图所需要的数据集
    • height__每个子图的高度
    • aspect__每个子图的宽高比
    • palette__调色板

数据可视化实例(六): 带线性回归最佳拟合线的散点图(matplotlib,pandas)的更多相关文章

  1. 数据可视化实例(十一): 矩阵图(matplotlib,pandas)

    矩阵图 https://datawhalechina.github.io/pms50/#/chapter9/chapter9 导入所需要的库 import numpy as np # 导入numpy库 ...

  2. 数据可视化实例(八): 边缘直方图(matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter6/chapter6 边缘直方图 (Marginal Histogram) 边缘直方图具有沿 X 和 Y ...

  3. 数据可视化实例(十七):包点图 (matplotlib,pandas)

    排序 (Ranking) 包点图 (Dot Plot) 包点图表传达了项目的排名顺序,并且由于它沿水平轴对齐,因此您可以更容易地看到点彼此之间的距离. https://datawhalechina.g ...

  4. 数据可视化实例(七): 计数图(matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter5/chapter5 计数图 (Counts Plot) 避免点重叠问题的另一个选择是增加点的大小,这取 ...

  5. 【Matplotlib】数据可视化实例分析

    数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...

  6. 数据可视化实例(十六):有序条形图(matplotlib,pandas)

    排序 (Ranking) 棒棒糖图 (Lollipop Chart) 棒棒糖图表以一种视觉上令人愉悦的方式提供与有序条形图类似的目的. https://datawhalechina.github.io ...

  7. [译]学习IPython进行交互式计算和数据可视化(六)

    第五章:高性能并行计算 一个反复被提及的反对使用Python进行高性能数值计算的言论是这种语言是动态解释型的,速度太慢.一种编译型低级语言,如C,能提供比它快几个数量级的运算速度.我们在第三章--使用 ...

  8. 数据可视化实例(五): 气泡图(matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter2/chapter2 关联 (Correlation) 关联图表用于可视化2个或更多变量之间的关系. 也 ...

  9. 数据可视化实例(三): 散点图(pandas,matplotlib,numpy)

    关联 (Correlation) 关联图表用于可视化2个或更多变量之间的关系. 也就是说,一个变量如何相对于另一个变化. 散点图(Scatter plot) 散点图是用于研究两个变量之间关系的经典的和 ...

随机推荐

  1. Dos命令提示符下 - 用sqlcmd执行*.sql语句

    Dos命令提示符下 - 用sqlcmd执行*.sql语句 1)在Dos命令下执行sqlcmd命令(当然事先需要将sqlcmd增加到环境变量中去), 2)下面白色部分替换为服务器名或计算机名即可sqlc ...

  2. RocketMQ系列(六)批量发送与过滤

    今天我们再来看看RocketMQ的另外两个小功能,消息的批量发送和过滤.这两个小功能提升了我们使用RocketMQ的效率. 批量发送 以前我们发送消息的时候,都是一个一个的发送,这样效率比较低下.能不 ...

  3. 从零开始的Spring Boot(1、搭建一个Spring Boot项目Hello World)

    搭建一个Spring Boot项目Hello World 写在前面 从零开始的Spring Boot(2.在Spring Boot中整合Servlet.Filter.Listener的方式):http ...

  4. 授权函数-web_set_certificate_ex

    设置证书和密钥文件属性. int web_set_certificate_ex(const char * option_list,LAST); 该函数与Loadrunner 录制设置属性中的Recor ...

  5. vim中的替换操作

    在vim中 :s(substitute)命令用于查找并替换字符串.使用方法如下: :s/<find-this>/<replace-with-this>/<flags> ...

  6. elk2

    如果使用codec->json进行解码,表示输入到logstast中的input数据必须是json的格式,否则会解码失败 java中一句代码异常会抛出多条的堆栈日志,我们可以使用上面的mutil ...

  7. 使用TimerTask创建定时任务

    使用TimerTask创建定时任务,打包之后应用于linux系统 step1:创建java项目 step2:代码实现 定时任务实现类CreateTask.java是打印操作者的名字 配置准换类Conf ...

  8. SQL注入之Boolean型盲注

    什么是Boolean型注入 Boolean型的注入意思就是页面返回的结果是Boolean型的,通过构造SQL判断语句,查看页面的返回结果是否报错,页面返回是否正常等来判断哪些SQL判断条件时成立的,通 ...

  9. 基数排序(Java)

    基数排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 基数排序(桶排序)介绍 基数排序(radix sort)属 ...

  10. 在 Spring Boot 中使用 HikariCP 连接池

    上次帮小王解决了如何在 Spring Boot 中使用 JDBC 连接 MySQL 后,我就一直在等,等他问我第三个问题,比如说如何在 Spring Boot 中使用 HikariCP 连接池.但我等 ...