Seaborn绘制拟合线

Seaborn绘制拟合线,第1张

Seaborn绘制拟合线

利用seaborn.lmplot绘制最佳拟合线,在整个有颜色区域都是它的置信区间,但它会拟合出一条最佳的拟合线,颜色范围越大,表明拟合效果相对较差。

1 导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib as mpl
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']       #解决中文乱码
plt.rcParams['axes.unicode_minus'] = False      #解决负号不显示
2 生成数据
x = np.arange(0,100,1)                    # 生成真实数据
y = 2 * x + 5 + 50*np.random.randn(100,)   # 生成模拟数据
class_model= [0]*30 + [1]*70  # 用作分类,把x,y前30个数据作为一类,后70个数据作为一类
3 绘制最佳拟合线

设置相关绘图参数

large = 22; med = 16; small = 12
params = {'axes.titlesize': large, #子图上的标题字体大小
          'legend.fontsize': med, #图例的字体大小
          'figure.figsize': (30, 10), #图像的画布大小
          'axes.labelsize': med, #标签的字体大小
          'xtick.labelsize': med, #x轴上的标尺的字体大小
          'ytick.labelsize': med, #y轴上的标尺的字体大小
          'figure.titlesize': large} #整个画布的标题字体大小
plt.rcParams.update(params) #设定各种各样的默认属性
 # 设定整体风格
plt.style.use('seaborn-whitegrid')
# 设定整体背景风格
sns.set_style("white")
data = pd.Dataframe({"x1":x,"y1":y,'class_model':class_model})        # 必须把所有数据放到Dataframe里面
gridobj = sns.lmplot("x1","y1",data=data
                    ,hue = "class_model"   # 分类依据
                   # ,col = "class_model"   # 表示按照这种特征中的分类绘制图像,并且一个类别使用一张图,一条直线
                    #,col_wrap=1            # 表示对col中的类别进行折叠,将其折叠为几列
                    , robust=True# 抗噪声鲁棒性
                    , palette = 'tab10'  # 调色板(不同层次的“色调”变量)
                    #,legend=False      # 是否显示图例
                    , scatter_kws = dict(s = 60, linewidths = 0.7, edgecolors = 'black')) # 散点大小、线宽、点边缘色
                
sns.despine(top=False, right=False, left=False, bottom=False) # 设置边框是否显示
gridobj.set(xlim=(0, 100))
gridobj.set(ylim=(-100, 300))  # 设置范围
plt.xticks(fontsize=12,fontproperties = 'Times New Roman')   # 设置x轴刻度大小和字体类型
plt.yticks(fontsize=12,fontproperties = 'Times New Roman')
plt.tick_params(bottom=True,left=True,right=False,top=False)
plt.rcParams['xtick.direction']='out'   # x轴的刻度线向内显示

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5701412.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存