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()

 

posted @ 2020-06-09 00:06  wigginess  阅读(130)  评论(0编辑  收藏  举报