目录
本文速览1、绘图数据准备2、seaborn.regplotregplot默认参数线型回归图分别设置点和拟合线属性置信区间(confidenceinterval)设置拟合线延伸与坐标轴相交拟合离散变量曲线多项式回归(polynomialregression)拟合曲线3、seaborn.lmplot按变量分类拟合回归线散点marker设置散点调色盘拟合线属性设置绘制分面图本文速览
1、绘图数据准备
依旧使用鸢尾花iris数据集,详细介绍见之前文章。
#导入本帖要用到的库,声明如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import palettable
from pandas import Series,DataFrame
from sklearn import datasets
import seaborn as sns
import palettable
#导入鸢尾花iris数据集(方法一)
#该方法更有助于理解数据集
iris=datasets.load_iris()
x, y =iris.data,iris.target
y_1 = np.array(["setosa" if i==0 else "versicolor" if i==1 else "virginica" for i in y])
pd_iris = pd.DataFrame(np.hstack((x, y_1.reshape(150,1))),columns=["sepal length(cm)","sepal width(cm)","petal length(cm)","petal width(cm)","class"])
#astype修改pd_iris中数据类型object为float64
pd_iris["sepal length(cm)"]=pd_iris["sepal length(cm)"].astype("float64")
pd_iris["sepal width(cm)"]=pd_iris["sepal width(cm)"].astype("float64")
pd_iris["petal length(cm)"]=pd_iris["petal length(cm)"].astype("float64")
pd_iris["petal width(cm)"]=pd_iris["petal width(cm)"].astype("float64")
#导入鸢尾花iris数据集(方法二)
#该方法有时候会卡巴斯基,所以弃而不用
#import seaborn as sns
#iris_sns = sns.load_dataset("iris")
数据集简单查看
2、seaborn.regplot
seaborn.regplot(x, y, data=None, x_estimator=None, x_bins=None, x_ci="ci", scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker="o", scatter_kws=None, line_kws=None, ax=None)
regplot默认参数线型回归图
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)#设置主题,文本大小
g=sns.regplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
color="#000000",#设置marker及线的颜色
marker="*",#设置marker形状
)分别设置点和拟合线属性
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
color="#000000",
marker="*",
scatter_kws={"s": 60,"color":"g",},#设置散点属性,参考plt.scatter
line_kws={"linestyle":"--","color":"r"}#设置线属性,参考 plt.plot
置信区间(confidence interval)设置
注意拟合线周围阴影面积变化
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
color="#000000",
marker="*",
ci=60,#置信区间设置,默认为95%置信区间,越大线周围阴影部分面积越大
)拟合线延伸与坐标轴相交
# extend the regression line to the axis limits
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
color="#000000",
marker="*",
truncate=False,#让拟合线与轴相交
)拟合离散变量曲线
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
x_discrete=[0 if i=="setosa" else 1 if i=="versicolor" else 2 for i in pd_iris["class"]]#
g=sns.regplot(x=x_discrete, y="sepal width(cm)", data=pd_iris,#x此时为离散变量
color="#000000",
marker="*",
)
多项式回归( polynomial regression)拟合曲线
plt.figure(dpi=110)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
marker="*",
order=4,#默认为1,越大越弯曲
scatter_kws={"s": 60,"color":"#016392",},#设置散点属性,参考plt.scatter
line_kws={"linestyle":"--","color":"#c72e29"}#设置线属性,参考 plt.plot
)3、seaborn.lmplot
seaborn.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers="o", sharex=True, sharey=True, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=True, x_estimator=None, x_bins=None, x_ci="ci", scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, size=None)
seaborn.lmplot结合seaborn.regplot()和FacetGrid,比seaborn.regplot()更灵活,可绘制更个性化的图形。
按变量分类拟合回归线
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
hue="class",
)
g.fig.set_size_inches(10,8)散点marker设置
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
hue="class",
markers=["+","^","o"], #设置散点marker
)
g.fig.set_size_inches(10,8)散点调色盘
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
hue="class",
markers=["+","^","*"],
scatter_kws={"s":180},
palette=["#01a2d9", "#31A354", "#c72e29"],#调色盘
)
g.fig.set_size_inches(10,8)拟合线属性设置
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
hue="class",
markers=["+","^","*"],
scatter_kws={"s":180},
line_kws={"linestyle":"--"},#拟合线属性设置
palette=["#01a2d9", "#31A354", "#c72e29"],
)
g.fig.set_size_inches(10,8)绘制分面图
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x="sepal length(cm)", y="sepal width(cm)", data=pd_iris,
col="class",#按class绘制分面图
markers="*",
scatter_kws={"s":150,"color":"#01a2d9"},
line_kws={"linestyle":"--","color":"#c72e29"},#直线属性设置
)
g.fig.set_size_inches(10,8)以上就是Python可视化学习之seaborn绘制线型回归曲线的详细内容,更多关于Python seaborn线型回归曲线的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?

