当前位置:   article > 正文

数学建模——数据可视化seaborn_数学建模分布规律可视化

数学建模分布规律可视化
数学建模——数据可视化seaborn

写作由来:
最近在准备数学建模美赛,在画图表的时候,之前一直用的是matplotlib,但是画出来总感觉不是很好看,而美赛挺注重文章的美观,所以找到了另一个实用的高级的Python包——seaborn。

概括

风格(style)

有5种风格 white,whitegrid,dark,darkgrid,ticks,默认是darkgrid

sns.set()

sns.set(style="ticks") 坐标轴出现刻度线

环境(context)

sns.plotting_context("notebook")  # 默认
sns.plotting_context("paper")
sns.plotting_context("talk")
sns.plotting_context("poster")
  • 1
  • 2
  • 3
  • 4
##字体大小和线的粗细
sns.set_context("paper",font_scale=2,rc={"lines.linewidth":3.5})
plt.figure(figsize=(10,6)) ##表的大小
  • 1
  • 2
  • 3

画图就是参数很多,列举一些下面用到常用的

  • hue:也是具体的某一可以用做分类的列,作用是分类;

  • palette:调色板

  • markers:绘图的形状

  • x_jitter,y_jitter:设置点的抖动程度

    Categorical plots(分类图)

  1. Categorical scatterplots(分类散点图)
    stripplot(分布散点图)
    swarmplot(分布密度散点图)
  2. Categorical distribution plots(分类分布图)
    boxplot(箱线图)
    violinplot(小提琴图)
  3. Categorical estimate plots(分类估计图)
    pointplot(点图)
    barplot(条形图)
    countplot(计数统计图)
##默认提供的颜色
current_palette = sns.color_palette()
sns.palplot(current_palette)
  • 1
  • 2
  • 3

在这里插入图片描述

当我们画12条线的时候,有两条颜色是相同的,因为他默认提供10种颜色

这时最简单的方法就是在一个圆形的颜色空间中画出均匀间隔的颜色

sns.palplot(sns.color_palette("hls",12))
  • 1

在这里插入图片描述

连续画板
sns.palplot(sns.light_palette("purple"))
  • 1

在这里插入图片描述

sns.palplot(sns.dark_palette("yellow"))
  • 1

在这里插入图片描述

回归

回归regplot和implot,推荐用regplot,implot更高级,参数更多

sns.regplot(x='total_bill',y='tip',data=tips)
  • 1

在这里插入图片描述

多变量分析
sns.stripplot(x="day",y="total_bill",data=tips,jitter=False)
  • 1

在这里插入图片描述

jitter参数默认是true,即左右小范围偏差
在这里插入图片描述

##上面那个左右误差的不太均匀,那下面的这个图就左右比较均匀
##长的像树
sns.swarmplot(x="day",y="total_bill",data=tips)
  • 1
  • 2
  • 3

在这里插入图片描述

  • hue是data中的键或向量,根据hue变量对数据进行分组,并在图中使用不同颜色的元素加以区分。
sns.swarmplot(x="day",y="total_bill",hue="sex",data=tips)
  • 1

在这里插入图片描述

小提琴
sns.violinplot(x="day",y="total_bill",hue="sex",data=tips)
  • 1

在这里插入图片描述

sns.violinplot(x="day",y="total_bill",hue="sex",data=tips,split=True)
  • 1

在这里插入图片描述

点图pointplot

更好的描述变化差异

sns.pointplot(x="class",y="survived",hue="sex",data=titanic,palette={"male":"g","female":"m"},
             markers=["^","o"],linestyles=["-","--"]
             )
  • 1
  • 2
  • 3

在这里插入图片描述

柱状图barplot
sns.barplot(x="sex",y="survived",hue="class",data=titanic)
  • 1

在这里插入图片描述

displot
热度图
实战(tips数据集)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_context("paper",font_scale=2,rc={"lines.linewidth":3.5})
tips = sns.load_dataset("tips",data_home="D:\JJH\Documents\seaborn-data-master\seaborn-data-master")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

查看tip的分布情况

sns.displot(data=tips,x="tip")
  • 1

在这里插入图片描述

核密度估计

sns.displot(data=tips,x="tip",kind="kde")
  • 1

在这里插入图片描述

在直方图中,显示核密度估计

sns.displot(data=tips,x="tip",kde=True)
  • 1

在这里插入图片描述

在分布图中区分男女

通过hue参数

sns.displot(data=tips,x="tip",kind="kde",hue="sex")
  • 1

在这里插入图片描述

为了更加美观可以设置multiple,默认是layer
multiple有三个参数分别是layer,stack,fill

sns.displot(data=tips,x="tip",hue="sex",kind="kde",multiple="stack")
  • 1

在这里插入图片描述

二元分布图

sns.displot(data=tips,x="tip",y="total_bill")
  • 1

在这里插入图片描述

另一种二元分布图

sns.displot(data=tips,x="tip",y="total_bill",kind="kde")
  • 1

在这里插入图片描述

col参数,绘制分图

sns.displot(data=tips,x="tip",kind="kde",col="sex")
  • 1

在这里插入图片描述

jointplot

即可以查看二元变量的分布情况

g=sns.jointplot(x="total_bill",y="tip",data=tips)
  • 1

在这里插入图片描述

六边形

g=sns.jointplot(x="total_bill",y="tip",data=tips,kind="hex")
  • 1

在这里插入图片描述

pairplot

查看所有变量(数值型)之间的关系

sns.pairplot(tips,
             kind = 'scatter', #散点图/回归分布图{'scatter', 'reg'})
             diag_kind = 'hist', #直方图/密度图{'hist', 'kde'}
             hue = 'time',   #按照某一字段进行分类
             palette = 'husl',  #设置调色板
             markers = ['o', 's'], #设置不同系列的点样式(这里根据参考分类个数)
             )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

热度图 相关系数

因为有些不是数值型的,相关系数是没法计算的,所以要转化为int

for field in ["sex","day","time","smoker"]:
    tips[field]=tips[field].astype("category").cat.codes
  • 1
  • 2
sns.heatmap(tips.corr(),annot=True,fmt='.2f',cmap="coolwarm")
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/854952
推荐阅读
相关标签
  

闽ICP备14008679号