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

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

导入所需要的库

# 导入numpy库
import numpy as np
# 导入pandas库
import pandas as pd
# 导入matplotlib库
import matplotlib as mpl
import matplotlib.pyplot as plt
# 导入seaborn库
import seaborn as sns
# 在jupyter notebook显示图像
%matplotlib inline

设定图像各种属性

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

程序代码

# step1:导入数据

df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")

    # 选择cyl为4,8的数据集
df_select = df.loc[df.cyl.isin([4, 8]), :]

# step2:绘图

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

# step3:装饰

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

# step1:导入数据

df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")

    # 选择cyl为4,8的数据集
df_select = df.loc[df.cyl.isin([4, 8]), :]

# step2:绘图

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

# step3:装饰

    # 横纵坐标范围
gridobj.set(xlim = (0.5, 7.5), ylim = (0, 50))
# 设置标题
plt.title("Scatterplot with line of best fit grouped by number of cylinders", fontsize=20)
# 显示图像
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. Censoring【KMP算法+堆栈模拟】

    Censoring 传送门:链接   来源:UPC8203 题目描述 Farmer John has purchased a subscription to Good Hooveskeeping ma ...

  2. 小球(总结sort和cmp函数、结构体排序)

    问题 N: 小球(点击) 时间限制: 1 Sec  内存限制: 128 MB                                                               ...

  3. AlertController的使用

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...

  4. Nested Report_FR

    设置好下面的关系(Mar 18做,copy from MyQ): 1) Customer.Orders.Items 的 MasterSouce.MasterField2) 后面2个的 DataSour ...

  5. 动作函数-web_custom_request

    web_custom_request("get_login", "URL=http://10.1.102.75:8000/login?user=Milton&pw ...

  6. SpringBoot整合Hibernate Validator实现参数验证功能

    在前后端分离的开发模式中,后端对前端传入的参数的校验成了必不可少的一个环节.但是在多参数的情况下,在controller层加上参数验证,会显得特别臃肿,并且会有许多的重复代码.这里可以引用Hibern ...

  7. UltraEdit常用技巧

    Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为“她”具有列编辑模式.如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦.这是一个超级“赞”的功能.在 ...

  8. Rust 数据类型

    Rust中的每个值都具有特定的数据类型. 基础类型: 整数,浮点数,布尔值和字符 i8,i16,i32,i64,i64,i128,isize, u8,u16,u32,u64,u64,u128,usiz ...

  9. opencv Scalar

    template<typename _Tp> class Scalar_ : public Vec<_Tp, 4> { public: //! various construc ...

  10. 解决:Invalid character found in the request target.The valid characters are defined in RFC 7230 and RF

    背景 在将tomcat升级到7.0.81版后,发现系统的有些功能不能使用了,查询日志发现是有些地址直接被tomcat认为存在不合法字符,返回HTTP 400错误响应,错入信息如下: 原因分析 经了解, ...