
利用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轴的刻度线向内显示
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)