zoukankan      html  css  js  c++  java
  • 4.machinelearning的好伙伴seaborn

    seaborn库初识

    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import numpy as np
    import seaborn as sns
    
    
    """
    seaborn是基于matplotlib的一个画图库
    """
    def sinplot(flip = 1):
        x = np.linspace(0,14,100)
        for i in range(1,7):
            plt.plot(x,np.sin(x+i * 0.5)*(7 - i )* flip)
    
    
    # sinplot()
    # seaborn默认风格设置
    sns.set()
    
    sns.set_style("white") # 背景为白色,有刻度
    # sns.set_style('ticks')
    # 默认去掉没用的轴
    
    
    
    """对图像的边框和位移的操作必须在图像绘制完成之后才能使用"""
    #sns.despine(offset=100) # 对图像进行平移
    # sns.despine(left=True)
    
    
    # 对于不同的多个图指定统一风格
    
    with sns.axes_style('darkgrid'):
        plt.subplot(211)
        sinplot()
    plt.subplot(212)
    sinplot(-1)

    调色板

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    
    # 分类色板
    
    # 离散型画板
    # RGB空间色板
    current_palette = sns.color_palette()
    # hls空间的色板
    current_palette = sns.hls_palette(8)
    sns.palplot(current_palette)  # seaborn的色板画图函数
    
    
    # hls画板实例
    data = np.random.normal(size = (20,8)) + np.arange(8) / 2
    sns.boxplot(data = data,palette= sns.hls_palette(8))
    
    plt.show()

    调色板设置

    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 连续性画板
    sns.palplot(sns.color_palette('Blues'))
    sns.palplot(sns.color_palette('BuGn_r'))
    
    # 线性的调色板
    sns.palplot(sns.color_palette('cubehelix',8))
    
    # 可以设置一个开始到结束值
    sns.palplot(sns.cubehelix_palette(8,start = 0.5, rot = - 0.75))
    
    # 指定连续画板的深浅
    sns.palplot(sns.light_palette('yellow')) # 由浅到深
    sns.palplot(sns.light_palette('yellow',reverse= True)) # 由浅到深反转
    sns.palplot(sns.dark_palette('purple')) # 有深入浅
    
    
    plt.show()

    分类属性绘制

    import matplotlib.pyplot as plt
    import seaborn as sns
    import numpy as np
    import pandas as pd
    
    sns.set(style='whitegrid', color_codes=True)
    
    np.random.seed(sum(map(ord,'categorical')))
    titanic = pd.read_csv('seaborn_data/titanic.csv')
    tips = pd.read_csv('seaborn_data/tips.csv')
    iris = pd.read_csv('seaborn_data/iris.csv')
    
    # 柱状图
    sns.barplot(x='sex',y='survived',hue='class',data=titanic) # hue指定图像中分几类统计元素
    plt.show()
    # 点线图
    sns.pointplot(x='sex',y='survived',hue='class',data=titanic)
    plt.show()
    # 可以指定点线图的颜色,点形状,线形式
    sns.pointplot(x='class',y='survived',hue='sex',data=titanic,palette={'male':'g','female':'m'}
                  ,markers=['^','o'],linestyles=['-','--'])
    plt.show()
    # 多层面板分类图,什么都不指定的时候
    sns.catplot(x = 'day',
                   y = 'total_bill',
                   hue = 'smoker',
                   row = 'day',
                   kind = 'box',
                   data = tips,
                height=5,
                aspect=0.5) # kind指定图像类型,col指定分几类图像增加维度,height控制图形高度,aspect横纵此
    """
    参数大全
    *x,y,hue 数据集变量,变量名
    *date 数据集 数据集名
    *row col 更多分类变量平铺显示 变量名
    *aspect横纵此
    *oriend方向
    
    """
    plt.show()

  • 相关阅读:
    【Java学习笔记】java.lang包学习
    winform的md5加密
    地铁线路图的设计与实现
    asp.net的jQuery 表格展开伸缩
    关于批量数据更新的问题(C#高性能)
    JQuery用户名无刷新验证
    Linq分页
    用jQuery写的好的动态显示本机时间的代码
    asp.net防止页面刷新弹出“需要重新发送您以前提交的信息”
    aspx中的html代码调用CS文件中的方法
  • 原文地址:https://www.cnblogs.com/wigginess/p/13069826.html
Copyright © 2011-2022 走看看