Seaborn函数总结

    xiaoxiao2022-07-14  171

    Seaborn是matplotlib库的扩展,主要专注于统计学的分析 Seaborn背后有调色板

    import seaborn as sns sns.set_style(‘darkgrid’) 设置一些背景 sns.load_dataset(‘tips’) 加载数据 seaborn datasets

    画图

    sns.relplot(x=‘total_bill’,y=‘tip’, data=tips) 画散点图 relational plots -x 针对同一个x对应多个y的情况,line plot会根据mean和95%的置信区间(confidence interval)来作图 -y -ci = None ‘sd标准差/None’ 取消置信区间 -estimator= None 取消所有的东西

    hue=‘字段’ 用颜色来进行区分 有渐变的效果style=‘字段’ 用数据形状来区分字段size = ‘字段’ 其实这是用大小来分类sizes=(15,200) 可以指定大小的区间 跟size连用kind=‘line折线x要有个时间关系/scatter散点/box箱线图/swarm钟型图/boxen/violin小提琴图(KDE把离散的值连续化)’ 图像的类型sort = False 排序

    用hue可以根据某个column分成不同的颜色绘制 hue和style像groupby sns.lmplot() 画一个线性回归的模型 sns.scatterplot() sns.lineplot()

    离散图

    sns.catplot(data=tips,x=‘day’, y=‘total_bill’) categorical plots分类的 replot也可以 只是好看了

    jitter=True 控制数据随机左右摆动 False就是变成直线kind=‘strip, swarm, box, violin,boxen,point, bar, count. strip为默认值’hue=‘字段’order = [‘NO’,‘Yes’] 可以指定列 谁在前和后的一个排序dodge=False 取消闪躲

    箱线图

    IQR = Q3 -Q1上面的线是1.5*IQR -下猫须,没人小于箱子的1.5 没有意义

    sns.boxplot(x=“time”, y=“tip”, data=data)

    条形图

    sns.catplot(x=‘sex’, y=‘survived’,hue=‘class’, kind=‘bar’,data=titainc) tips[‘weekend’] = tips[‘day’].isin([‘sat’,‘sun’])

    g = sns.catplot(x='day',y = 'total_bill',kind='violin',data=tips) sns.catplot(x='day',y = 'total_bill',kind='swarm',data=tips,as = g.ax) #2条形图的上面

    直方图

    x = np.random.normal(size=100) 拿到了100个高斯分布的数据

    sns.distplot(x, kde=True) 他是一个直方图,连续的曲线是kde -kde= True 就会有连续的曲线 -bins = 20 分20份 -rug = True 标识下面的小数字 的一个数据点,越密就越多

    KDE Kernel Density Estimation 核密度估计 就是把离散的函数变平滑

    每一个观测附近用一个正太分布曲线近似叠加所有观测的正太分布曲线归一化 sns.kdeplot(x ,bw=0.2) 画一条曲线把离散的变成连续的 -bandwidth 用于近似的正太分布的宽度 越大 越扁越矮,数越小 越尖越高

    柱状图

    sns.barplot(x=“month”, y=“passengers”, hue=‘year’, data=data) seaborn.countplot() 分类直方图对输入的定量就是不变的量进行分类,只能对x或者y 不能同时x和y

    散点图

    sns.scatterplot(x=“tip”, y=“total_bill”, data=data) sns.jointplot(x=‘x’ ,y=‘y’,data=df) 这两个维度都是高斯分布 会把两个维度都展示在一起

    kind=‘hex/kde(等高线图)’ 六角箱图 把散点变成六角箱,箱子里面的点越多,颜色就越深

    等高线图

    f, ax = plt.subplots() sns.kdeplot(df.x,df.y, ax=ax)

    短竖线图

    sns.rugplot(df.y,color=‘blue’ vertical=True,ax=ax) 这是y轴 x轴去掉vertical

    iris.corr() sns.pairplot(iris) 自己跟自己是直方图 自己跟别人是散点图 -hue

    绘制线性回归模型

    sns.lmplot(data=tips,x=‘total_bill’,y=‘tip’) 会有95置信区间和拟合的线

    x_jitter=0.1 会在x轴上左右抖动一下x_estimator=np.mean 做平均值估算ci = 50 就会变小 默认是95scatter_kes={“s”:80} 点的大小order = 2 就是更高的维度robust = True 忽略异常点logiste = True 用回归拟合 -col=‘time’ 将两个图分开row=‘sex’ 按sex行进行分开height =8 图片的大小aspect=0.4长和宽的比例size = 30col_wrap=2 一行只出2个图

    残差

    sns.residplot(x=‘x’,y=‘y’,data=anscombe.query(’'dataset == ‘I’ “”))

    最新回复(0)