数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)

Posted qiu-hua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)相关的知识,希望对你有一定的参考价值。

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)的主要内容,如果未能解决你的问题,请参考以下文章

Python数据可视化之绘制带有最佳拟合线的散点图(图文并茂版!!!)

Python使用matplotlib可视化散点图使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线

R语言plotly可视化:使用plotly可视化简单线性回归模型的回归线对比不同参数设置下的同一机器学习模型算法的拟合曲线三维回归曲面可视化实际值和回归预测值的散点图残差分析

R绘制散点图以及带圈定的散点图(Scatterplot With Encircling)

R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线并使用se参数设置拟合回归线的置信区间

Python使用matplotlib可视化散点图使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)