zoukankan      html  css  js  c++  java
  • 04_seaborn基本使用

    1.seaborn设置整体风格

    seaborn提供5中主题风格:

    • darkgrid
    •  whitegrid
    •  dark
    •  white
    •  ticks

    主要通过set()和set_style()两个函数对整体风格进行控制。

    准备工作:

    import seaborn as sns
    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    # 定义一个绘图函数
    def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 7): plt.plot(x, np.sin(x + i*.5)*(7-i)*flip)

    默认设置1

    输入:

    # 一般图形, 默认设置
    # 效果同sns.set()
    
    sinplot()

    输出:

    默认设置2

    输入:

    # 默认设置
    
    sns.set()  # 使用seaborn的默认设置
    sinplot()

    输出:

     

    设置风格为ticks

    输入:

    # 设置风格为ticks
    
    # 可以直接通过参数名传参,也可以通过set_style()传参
    # 效果同:set_style('ticks')
    
    sns.set(style='ticks')
    sinplot()

     输出:

    设置为whitegrid

    输入:

    sns.set_style('whitegrid')
    sinplot()

    输出:

     

    其他主题设置风格类似,可通过set(style=" ")方式,也可以通过set_style( " " )的方式设置。

    具体可使用print(help(sns.set))函数查看帮助文档。

    2.seaborn设置细节风格

    设置边框

    输入:

    # 边框设置
    
    sinplot()
    sns.despine()  # 去掉边框,默认去掉上边框和右边框

    输出:

    也可以通过参数名传参,来决定哪个边框不显示。

    输入:

    # 也可以通过参数名传参,决定哪个边框不显示
    
    sinplot()
    sns.despine(bottom=True, right=True)  # True代表不显示

    输出:

    设置子图风格

    输入:

    # 对子图设置不同风格
    
    with sns.axes_style('darkgrid'):
        plt.subplot(211)  # 对第一个子图设置风格darkgrid
        sinplot()
        
    plt.subplot(212)
    sinplot(2)
    
    # 通过关键字with,对不同子图设置风格

     输出:

    设置内容

    输入:

    # 对图中内容进行设置,包括线条颜色,粗细和刻度等
    
    sns.set_context("paper")  # 使用paper风格
    plt.figure(figsize=(10, 6))
    sinplot()

    输出:

     字体、线宽设置

     输入:

    # 设置字体大小,线宽等
    
    sns.set_context("talk", font_scale=1.5, rc={'line.linewidth':2.5})  # 使用talk风格
    plt.figure(figsize=(10, 6))
    sinplot()

    输出:

    3.调色板的使用

     seaborn主要提供分类色板、颜色空间、连续色板和xkcd等操作,对图像颜色进行设置。

    分类色板

     主要涉及以下函数:

    • color_palette() 能传入任何Matplotlib所支持的颜色
    • color_palette() 不传入参数则为默认颜色
    • set_palette() 设置所有图的颜色
    import numpy as np
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    sns.set(rc={'figure.figsize': (6, 6)})  # 设置画板大小

    输入:

    # 分类色板
    
    current_palette = sns.color_palette() #默认是deep,深色风
    sns.palplot(current_palette)
    sns.palplot(sns.color_palette("muted")) #柔和风
    sns.palplot(sns.color_palette("pastel",9)) #粉蜡笔风
    sns.palplot(sns.color_palette("bright",10)) #明亮风
    sns.palplot(sns.color_palette("dark",11)) #黑暗风
    sns.palplot(sns.color_palette("colorblind",12)) # 色盲风
    
    # 6个默认的颜色循环主题: deep, muted, pastel, bright, dark, colorblind

    输出:

    颜色空间

     颜色空间主要通过hls_palette()函数来控制颜色的色调、亮度和饱和

    • h-色调 hue
    • l-亮度 lightness
    • s-饱和 saturation

    输入:

    # hls_palette()函数对颜色进行设置
    
    sns.palplot(sns.hls_palette(8,h=.8, l=.7, s=.9)) 
    sns.palplot(sns.hls_palette(8,h=0.1, l=.3, s=.6))
    
    #sns.hls_palette设置得到HLS的色彩空间中的颜色,颜色个数,
    # h设置色调,
    # l设置亮度,
    # s设置饱和度,
    # 取值范围均在(0,1)

    输出:

     

    输入:

    # 设置成对的,相近颜色
    
    sns.palplot(sns.color_palette("Paired",10))
    # 按对分组,每一对之间属同一色系中的差异较大的两个颜色
    # 对于对之间属于不同色系的颜色

    输出:

    xkcd颜色

     xkcd包含了一套针对随机RGB色的命名。产生了954个可以通过xdcd_rgb字典中调用的命名颜色。

    输入:

    # xkcd通过skcd_rgb设置颜色
    
    plt.plot([0, 1], [3, 0], sns.xkcd_rgb["piss yellow"], lw=4)  
    plt.plot([0, 1], [1, 1], sns.xkcd_rgb["cherry"], lw=3)
    plt.plot([0, 1], [0, 3], sns.xkcd_rgb["robin egg blue"], lw=3)
    
    # 通过颜色名字来调用颜色,
    # 也可以通过颜色的16进制编码调用颜色
    # lw : linewidth设置

    输出:

    输入:

    # xkcd 通过颜色名称设置颜色
    
    colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
    sns.palplot(sns.xkcd_palette(colors))

    输出:

    连续色板

     色彩随数据变换,比如数据越来越重要则颜色越来越深。

    输入:

    # 设置渐变色
    
    sns.palplot(sns.color_palette("Blues")) #设置某种颜色的一系列渐变色
    sns.palplot(sns.color_palette("Blues_r",8))  # blues_r 反向

    输出:

    输入:

    # 设置light风格的渐变色
    
    #使用函数light_palette函数,设置连续色板的风格
    sns.palplot(sns.light_palette("green"))   # 设置light风格的绿色渐变

    输出:

    输入:

    # 设置dark风格的渐变色
    
    # 使用dark_palette函数设置dark风格的渐变
    sns.palplot(sns.dark_palette("purple"))  # 设置dark风格的紫色

    输出:

     

    输入:

    # 设置渐变的颜色排列顺序
    
    # reverse参数设置渐变的排列顺序
    sns.palplot(sns.light_palette("navy", reverse=True)) #reverse可以设置颜色排列顺序

    输出:

    渐变色简单应用

    输入:

    # 渐变色简单易用
    
    # 生成一个多元正态分布矩阵
    # 参数mean : 均值
    # 参数cov : 协方差, array类型
    # 参数size: 个数
    x, y = np.random.multivariate_normal(mean=[0, 0], cov=[[1, -.5], [-.5, 1]], size=300).T
    
    pal = sns.dark_palette("green",as_cmap=True)
    # as_cmap=True,返回一个colormap对象
    
    sns.kdeplot(x, y, cmap=pal)
    # kdeplot : 核密度估计图,
    # cmap=pal,以colormap方式来设置颜色

    输出:

     

    4.单变量分析图

    import numpy as np
    import pandas as pd
    from scipy import stats, integrate
    import matplotlib.pyplot as plt
    import seaborn as sns

    频数直方图

    一般频数直方图

    输入:

    # 频数直方图
    
    # 生成100个成标准正态分布的随机数
    x = np.random.normal(size=100)
    
    # sns.distplot画频数直方图
    # kde=True,进行核密度估计
    sns.distplot(x,kde=True) 

    输出:

    设置频数直方图的bins 

    输入:

    # 设置频数直方图的bins
    
    sns.distplot(x, bins=20, kde=False)

    输出:

    分析数据分布情况

     输入:

    # 数据分布情况
    
    # kde核密度估计,
    # fit拟合参数(黑色线条)
    # 蓝色线条为核密度估计线条
    sns.distplot(x, kde=True, fit=stats.alpha) 

    输出:

    5.双变量分析图

    主要用一下几个图画双变量的分析图:

    # 构造数据
    
    mean, cov = [0, 1], [(1, .5), (.5, 1)]
    # 二维多正态分数的数据
    data = np.random.multivariate_normal(mean, cov, 200)
    df = pd.DataFrame(data, columns=["x", "y"]) #将array结构转换为dataframe结构,添加列名。

    散点图

    输入:

    # 散点图
    
    # 一般用散点图展示两个变量间的关系
    sns.jointplot(x='x', y='y', data=df, size=7)  # x,y参数也可以用x=df['x'], y=df['y'] 的形式传入
    
    # sns.jointplot画双变量关系图,
    # data传入dataframe,x,y设置两个变量数据,
    # size设置图的大小

    输出:

    六角图

     输入:

    # 六角图
    
    # 数据
    x, y = np.random.multivariate_normal(mean, cov, 1000).T
    
    # 设置画图风格
    with sns.axes_style("white"): 
        sns.jointplot(x=x, y=y, kind="hex", color="k", size = 7) 
    
    # kind='hex' 画出六角图
    # 六角图中颜色越深的区域表示该区域的点越密集,数据越多

    输出:

    pairplot函数

     输入:

    # pairplot函数
    
    # 分析多个变量间,每两个变量间的关系
    # 不同变量间用散点图表示
    # 同一变量用直方图表示
    
    # 内置数据集:鸢尾花的数据集
    iris = sns.load_dataset("iris") 
    # print (iris.head())
    sns.pairplot(iris)

    输出:

     

    6.双变量回归分析图

    # 数据导入
    
    import numpy as np
    import pandas as pd
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    import seaborn as sns
    sns.set(color_codes=True)
    
    # 内置数据集tips小费
    tips = sns.load_dataset("tips") 
    
    tips.head()

    两变量回归关系regplot实现

    输入:

    # 两变量画回归关系图(regplot函数)
    
    # regplot()和lmplot()都可以绘制回归关系,推荐regplot()
    
    plt.figure(figsize = (7,7))
    sns.regplot(x="total_bill", y="tip", data=tips)
    # sns.regplot画数据散点和线性拟合的图,
    # 设置x坐标,y坐标,data传入dataframe

    输出:

    两变量回归关系图lmplot实现

    输入:

    # 两变量画回归关系图(lmplot函数)
    
    sns.lmplot(x="total_bill", y="tip", data=tips,size = 7)

    输出:

    抖动设置

    输入:

    # 设置横向抖动
    
    # x_jitter参数设置点横向抖动量。
    sns.regplot(x="size", y="tip", data=tips, x_jitter=.05) 
    
    # 部分数据重叠,因此设置抖动,减少覆盖点,便于观察点的分布

    输出:

     

    7.多变量回归分析图

    # 数据读取
    
    import numpy as np
    import pandas as pd
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 设置风格
    sns.set(style="whitegrid")
    
    # 数据加载
    titanic = sns.load_dataset("titanic")
    tips = sns.load_dataset("tips")
    iris = sns.load_dataset("iris")

    分类散点图stripplot()实现(两变量)

    输入:

    # 分类散点图(两变量:day,total_bill)
    
    # sns.stripplot()和sns.swarmplot()均能实现分类散点图
    
    plt.figure(figsize=(10,6))
    
    # 图型基本设置
    plt.xticks(size=12) 
    plt.yticks(size=12)
    plt.xlabel('day',size=16) 
    plt.ylabel( 'total_bill',size=16)
    
    # 分析day与total_bill间的关系
    sns.stripplot(x="day", y="total_bill", data=tips)  

    输出:

    数据重叠严重,影响观察数据的量,因此设置抖动。

    输入:

    # 数据重叠严重,影响观察数据的量,因此设置抖动
    
    # jitter=True
    sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)

    输出:

    分类散点图swarmplot()实现(两变量)

    输入:

    # swarmplot函数实现类别散点图
    
    sns.swarmplot(x="day", y="total_bill", data=tips)

    输出:

    分类散点图三变量实现

    输入:

    # 分类散点图(三变量:day, total_bill, sex)
    
    # 传入的第三个变量,通过颜色区分
    
    plt.figure(figsize=(10,6))
    palette1=sns.color_palette("bright")
    
    # hue设置第三个变量,palette设置调色板颜色
    sns.swarmplot(x="day", y="total_bill", hue="sex",palette = palette1,data=tips)

    输出:

    输入:

    # 分类散点图(三变量:day, total_bill, time)
    
    plt.figure(figsize=(10,6))
    
    # hue接收第三个变量
    sns.swarmplot(x="total_bill", y="day", hue="time", data=tips)

    输出:

    盒图(三变量)

     盒图是显示数据离散度的一种图形。它对于显示数据的离散的分布情况效果不错。
     IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
     N = 1.5IQR 如果一个值>Q3+N或 < Q1-N,则为离群点

     盒图特点:
     通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:
     直观地识别数据集中的异常值(查看离群点)。
     判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

    输入:

    # 盒图(三变量:day,total_bill, time)
    
    # sns.boxplot()
    # 盒图是显示数据离散度的一种图形。它对于显示数据的离散的分布情况效果不错。
    # IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
    # N = 1.5IQR 如果一个值>Q3+N或 < Q1-N,则为离群点
    
    # 盒图特点:
    # 通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:
    # 直观地识别数据集中的异常值(查看离群点)。
    # 判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。
    
    # 基本设置
    plt.figure(figsize=(10,6))
    plt.xticks(size=12)
    plt.yticks(size=12)
    plt.xlabel('day',size=16)
    plt.ylabel( 'total_bill',size=16)
    
    sns.boxplot(x="day", y="total_bill", hue="time", data=tips)

    输出:

    小提琴图(三变量)

    输入:

    # 小提琴图(三变量:day, total_bill, time)
    
    # sns.violinplot()函数实现
    
    plt.figure(figsize=(10,6))
    plt.xticks(size=12)
    plt.yticks(size=12)
    plt.xlabel('total_bill',size=16)
    plt.ylabel( 'day',size=16)
    
    # sns.violinplot()画小提琴图
    sns.violinplot(x="total_bill", y="day", hue="time", data=tips)
    # 图中白点是中位数,
    # 中间黑色盒形是上四分位点和下四分位点,
    # 黑色的线条表示离群点的离群程度,越长表示离群点越远
    
    plt.show()

    输出:

    小提琴图设置

     输入:

    # 小提琴图设置(三变量:day, total_bill, sex)
    
    # split设置左右区分
    sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True)
    
    plt.show()

    输出:

    小提琴图和分类散点图组合

    输入:

    # 小提琴图和分类散点图组合
    
    # 基本设置
    plt.figure(figsize=(10,6))
    plt.xticks(size=12)
    plt.yticks(size=12)
    plt.xlabel('total_bill',size=16)
    plt.ylabel( 'day',size=16)
    
    # inner设置是否显示中间的盒形和线条
    sns.violinplot(x="day", y="total_bill", data=tips, inner=None)
    # alpha设置透明度
    sns.swarmplot(x="day", y="total_bill", data=tips, color="w", alpha=.6)
    
    plt.show()

    输出:

    平均数条形图(三变量)

     输入:

    # 平均数条形图(三变量:sex, survived, class)
    
    # sns.barplot()函数实现平均数条形图
    
    # 基本设置
    plt.figure(figsize=(10,6))
    plt.xticks(size=12)
    plt.yticks(size=12)
    plt.xlabel('sex',size=16)
    plt.ylabel( 'survived',size=16)
    
    sns.barplot(x="sex", y="survived", hue="class", data=titanic,ci=95)
    #黑色线条表示置信度,
    # ci 设置黑色线条的大小,范围在[0,100]
    
    plt.show()

    输出:

    点图(三变量)

    输入:

    # 点图(三变量:sex, survived, class)
    
    # sns.pointplot()绘制点图
    
    plt.figure(figsize=(10,6))
    plt.xticks(size=12)
    plt.yticks(size=12)
    plt.xlabel('sex',size=16)
    plt.ylabel( 'survived',size=16)
    
    # 反映变化趋势
    sns.pointplot(x="sex", y="survived", hue="class", data=titanic,ci=70)
    # ci=70 设置执行度
    
    plt.show()

    输出:

    点图细节设置

    输入:

    # 点图细节设置
    
    sns.pointplot(x="class", y="survived", hue="sex", data=titanic,
                  palette={"male": "g", "female": "m"},
                  markers=["^", "o"], linestyles=["-", "--"],
                 scale=1.5)   
    
    # palette 通过调色板来设置颜色,
    # markers设置点的形状,
    # linestyles设置显的风格,
    # scale设置线条的粗细
    
    plt.show()

    输出:

    多层面板分类图

    输入:

    # 多层面板分类图
    
    # sns.factorplot() 实现多层面板分类图
    
    # x,y,hue设置要画在一个图中的数据集变量名
    sns.factorplot(x="class", y="survived", hue="sex", data=titanic, size=6,ci=50)
    
    plt.show()

    输出:

    输入:

    # 通过kind参数指定图的类型
    
    sns.factorplot(x="day", y="total_bill", hue="smoker", data=tips, kind="bar", size=6)
    
    plt.show()

    输出:

    四个变量下的分类散点图

     输入:

    # 四个变量下的分类散点图
    
    # kind参数指定图类型
    # loc参数接收第四个参数
    sns.factorplot(x="day", y="total_bill", hue="smoker",col="time", data=tips, kind="swarm", size=6)
    
    # 共四个变量了
    # col和row设置更多的变量名,进行平铺显示(以不同的图进行区分)
    plt.show()

    输出:

    四变量下的盒图

    输入:

    # 四变量下的盒图
    
    sns.factorplot(x="time", y="total_bill", hue="smoker",
                   col="day", data=tips, kind="box", size=6, aspect=1,col_wrap=2)
    
    plt.show()

    输出:

    多变量分析图其他参数

    Parameters:

    • x,y,hue 数据集变量 变量名
    • date 数据集 数据集名
    • row,col 更多分类变量进行平铺显示 变量名
    • col_wrap 每行的最高平铺数 整数
    • estimator 在每个分类中进行矢量到标量的映射 矢量
    • ci 置信区间 浮点数或None
    • n_boot 计算置信区间时使用的引导迭代次数 整数
    • units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据
    • order, hue_order 对应排序列表 字符串列表
    • row_order, col_order 对应排序列表 字符串列表
    • kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点 size 每个面的高度(英寸) 标量 aspect 纵横比 标量 orient 方向 "v"/"h" color 颜色 matplotlib颜色 palette 调色板 seaborn颜色色板或字典 legend hue的信息面板 True/False legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False share{x,y} 共享轴线 True/False

    8.FacetGrid()的使用方法

    # 读取数据
    import numpy as np
    import pandas as pd
    import seaborn as sns
    from scipy import stats
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    sns.set(style="ticks")
    tips = sns.load_dataset("tips")
    # tips.head()

    FacetGrid()绘制频数直方图

    输入:

    # FacetGrid()绘制频数直方图
    
    # sns.FacetGrid,以网格图的方式呈现多变量的关系
    
    # 传入的数据集“tips”
    # 指定第四个变量“time”
    g = sns.FacetGrid(tips, col="time", size=6)  # 创建画板
    
    # 绘制“tips”的频数直方图
    g.map(plt.hist, "tip",edgecolor="white")

    输出:

    FacetGrid()绘制散点图

     输入:

    # FacetGrid()绘制散点图
    
    # 创建画板及变量
    g = sns.FacetGrid(tips, col="sex", hue="smoker",size=6)
    g.map(plt.scatter, "total_bill", "tip", alpha=.7)
    
    #添加图例
    g.add_legend()
    plt.show()

    输出:

    FacetGrid()绘制回归关系图

     输入:

    # FacetGrid()绘制回归关系图
    
    # margin_titles是否显示边缘的标题
    g = sns.FacetGrid(tips, row="smoker", col="time", margin_titles=True)
    #fit_reg是否显示拟合曲线
    g.map(sns.regplot, "size", "total_bill", color="g", fit_reg=False, x_jitter=.1) 
    
    plt.show()

    输出:

    FacetGrid()绘制bar图

    输入:

    # FacetGrid()绘制bar图
    
    g = sns.FacetGrid(tips, col="day", size=4, aspect=.5)
    # aspect设置长宽比
    
    g.map(sns.barplot, "sex", "total_bill")
    plt.show()

    输出:

    FacetGrid()指定画图顺序

    输入:

    # 指定画图顺序
    
    from pandas import Categorical 
    
    # 获取数据的索引
    ordered_days = tips.day.value_counts().index
    print (ordered_days)
    
    # Categorical指定顺序,里面传入自定义顺序
    ordered_days = Categorical(['Thur', 'Fri', 'Sat', 'Sun']) 
    
    # row_order=ordered_days设置顺序
    g = sns.FacetGrid(tips, row="day", row_order=ordered_days,
                      size=1.7, aspect=4,)
    
    g.map(sns.boxplot, "total_bill")
    plt.show()

    输出:

    FacetGrid()绘制散点图

    输入:

    # FacetGrid()绘制散点图
    
    pal = dict(Lunch="seagreen", Dinner="gray")
    g = sns.FacetGrid(tips, hue="time", palette=pal, size=5)
    
    # s设置点的大小,
    # edgecolor设置点边缘的颜色
    g.map(plt.scatter, "total_bill", "tip", s=50, alpha=.7, linewidth=2, edgecolor="r") 
    # 添加图例
    g.add_legend()
    
    plt.show()

    输出:

    散点图细节设置:

    输入:

    # 散点图细节设置1
    
    # palette 设置颜色
    # hue_kws指定线型
    g = sns.FacetGrid(tips, hue="sex", palette="Set1", size=5, hue_kws={"marker": ["^", "v"]}) 
    g.map(plt.scatter, "total_bill", "tip", s=100, linewidth=.5, edgecolor="white")
    g.add_legend()
    
    plt.show()

    输出:

    输入:

    # 散点图细节设置2
    
    # 涉及到了四个变量,
    # tips、totall bill、smoker和sex,
    # 使用row和col的两个变量进行平铺区分显示
    with sns.axes_style("white"):
        g = sns.FacetGrid(tips, row="sex", col="smoker", margin_titles=True, size=5) 
    
    # 设置坐标轴的标题,传入XY轴的标题,字符串形式   
    g.map(plt.scatter, "total_bill", "tip", color="#334488", edgecolor="white", lw=.5);
    
    # 设置标签
    g.set_axis_labels("Total bill (US Dollars)", "Tip") 
    
    # 设置坐标轴刻度
    g.set(xticks=[10, 30, 50], yticks=[2, 6, 10])
    
    #设置子图之间的间距
    g.fig.subplots_adjust(wspace=.02, hspace=.02)

    输出:

    PairGrid()绘制多变量间散点图

    一般图形

    输入:

    # PairGrid()画多变量间散点图
    
    # 读取数据
    iris = sns.load_dataset("iris")
    
    # 指定画板,传入数据
    g = sns.PairGrid(iris)
    
    # map画图
    g.map(plt.scatter)
    
    plt.show()

    输出:

    细节设置

    输入:

    # PairGrid()细节设置
    
    g = sns.PairGrid(iris)
    
    # 设置对角线上的图的类型
    g.map_diag(plt.hist)
    
    # 设置非对角线上图的类型
    g.map_offdiag(plt.scatter)
    
    plt.show()

    输出:

    添加变量

    输入:

    # 添加变量species
    
    g = sns.PairGrid(iris, hue="species")
    g.map_diag(plt.hist)
    g.map_offdiag(plt.scatter)
    g.add_legend()#添加图例
    plt.show()

    输出:

    设置多指标

    输入:

    # 设置要画的指标
    
    # 通过vars指定要画的指标
    g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"], hue="species") 
    g.map(plt.scatter)
    g.add_legend()
    
    plt.show()

    输出:

     颜色控制

    输入:

    # 颜色控制
    
    # palette 使用调色板来设置颜色
    g = sns.PairGrid(tips, hue="size", palette="GnBu_d",size = 4) 
    g.map(plt.scatter, s=70, edgecolor="white")
    g.add_legend()
    
    plt.show()

    输出:

    9.热度图(heatmap)

    一般图形

    # 数据读取
    import matplotlib.pyplot as plt
    import numpy as np; 
    np.random.seed(0)
    import seaborn as sns;
    sns.set()

    输入:

    # 热度图
    uniform_data = np.random.rand(3, 3)
    # print (uniform_data)
    heatmap = sns.heatmap(uniform_data)
    
    # 通过颜色的变化反映数字大小

    输出:

    细节设置

    设置bar两端

     输入:

    # vmix,vmax设置bar两端
    
    # 设置bar的两端
    ax = sns.heatmap(uniform_data, vmin=0.2, vmax=0.5)
    
    # 大于0.5定为淡色,小于0.2就定为黑色

    输出:

    设置中间数

    输入:

    # center设置中间数
    
    # center = 0
    # 大于0属于一种色系
    # 小于0属于另一种色系
    
    normal_data = np.random.randn(3, 3)
    # print (normal_data)
    ax = sns.heatmap(normal_data, center=0)

    输出:

    pivot()重塑数据

    一般图形

    输入:

    # pivot()重塑数据
    
    # 数据读取
    flights = sns.load_dataset("flights")
    # flights.head()
    
    # pivot重塑数据,产生一个“pivot”表格,形成dataframe结果
    flights1 = flights.pivot("month", "year", "passengers") 
    # print (flights1)
    
    plt.figure(figsize=(10,8))
    ax = sns.heatmap(flights1)

    输出:

    添加数值

    输入:

    # 添加数值
    
    plt.figure(figsize=(10,8))
    
    # annot显示注释,
    # fmt设置注释的形式
    ax = sns.heatmap(flights1, annot=True,fmt="d") 
    
    # fmt='d': 十进制的整数显示
    # fmt='f' : float小数
    # fmt='e': 科学计数法

    输出:

    设置间距

    输入:

    # 设置间距
    
    plt.figure(figsize=(10,8))
    
    # linewidths设置色块之间的间距
    ax = sns.heatmap(flights1, linewidths=1) 

    输出:

    设置颜色

     输入:

    # 设置颜色
    
    plt.figure(figsize=(10,8))
    ax = sns.heatmap(flights1, cmap="YlGnBu") # cmap设置颜色。

    输出:

    设置bar的显示与否

    输入:

    # 设置bar的显示与否
    
    plt.figure(figsize=(8,8))
    
    #cbar设置colorbar是否显示
    ax = sns.heatmap(flights1, cbar=False) 

    输出:

  • 相关阅读:
    WPF开发经验
    权限管理系统项目心得
    《鸟哥的Linux私房菜》笔记——02. 关于Linux
    《鸟哥的Linux私房菜》笔记——01. 计算机概论
    「JavaSE 重新出发」02.02 引用数据类型
    「JavaSE 重新出发」02.01 基本数据类型
    「JavaSE 重新出发」02. 数据类型与运算符
    「JavaSE 重新出发」01. Java介绍
    cmd 与 网卡(netsh 命令)
    Python 基础总结
  • 原文地址:https://www.cnblogs.com/pythoner6833/p/9291303.html
Copyright © 2011-2022 走看看