数据分析(5)--Seaborn

作者: 坚持后的收获 | 来源:发表于2019-04-15 00:00 被阅读100次

一、Seaborn介绍

Seaborn是一个基于matplotlib的Python数据可视化库。它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形;是一个用Python制作统计图形的库。建立在matplotlib之上,并pandas数据结构紧密集成。

二、Seaborn和matplotlib对比

首先我们导入所需要的模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
实例:

  • 需求:画一个花瓣(petal)和花萼(sepal)长度的散点图,并且点的颜色要区分鸢尾花的种类
    实例:
iris = pd.read_csv(r'C:\Users\taoxiao\Desktop\project\o25mso\homework/iris.csv')
print('****************')
print(iris.Name.unique())#返回name这列唯一的值
print('****************')
color_map = dict(zip(iris.Name.unique(), ['blue','green','red']))
gp_data = iris.groupby('Name')#通过name分组
print(gp_data.groups)

运行结果:

运行结果

实例:

  • matplotlibseaborn绘画散点图
#matplotlib绘制散点图
for species, group in iris.groupby('Name'):
    plt.scatter(group['PetalLength'], group['SepalLength'],
                color=color_map[species],
                alpha=0.3, edgecolor=None,
                label=species)
plt.legend(frameon=True, title='Name')
plt.xlabel('petalLength')
plt.ylabel('sepalLength')
#seabron绘制散点图
sns.lmplot('PetalLength', 'SepalLength', iris, hue='Name', fit_reg=False)

运行结果:

matplotlib绘制
seabron绘制

三、seaborn实现柱状图和热力图

数据展示实例:

df = sns.load_dataset('flights')
print(df.head())
print('***************')
print(df.shape)
print('***************')
#做一个数据的转换处理
df = df.pivot(index='month', columns='year', values='passengers')
df

运行结果:

运行结果
绘图实例:
#绘制热力图
sns.heatmap(df, annot=True, fmt='d')
df.plot()

运行结果:

热力图

seabron柱状图实例:

s = df.sum()

print(s.index)
print(s.values)
#绘制柱状图
sns.barplot(x=s.index, y=s.values

运行结果:

运行结果

matplotlibz柱状图实例:s.plot(kind='bar')

运行结果

四、seaborn实现直方图和密度图

  • matplotlib直方图和密度图
s1 = Series(np.random.randn(1000))
#直方图
plt.hist(s1)
i运行结果
密度图
s1.plot(kind='kde')
运行结果
#直方图
sns.distplot(s1, bins=20, hist=True, kde=False, rug=True)
直方图
#密度图
sns.kdeplot(s1, shade=True, color='r')
密度图

四、Seaborn设置图形显示效果

  • matplitlib绘图
    实例:
x = np.linspace(0,14,100)
#定义一个函数绘两个图
def sinplot():
    plt.plot(x, y1)
    plt.plot(x, y2)
sinplot()
运行结果
  • seabron绘制效果
import seaborn as sns
sinplot()
运行结果
  • 设置绘图风格
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()
运行结果
实例:
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()
运行结果
sns.set()#设置绘图风格清空
sns.set_style('white')#设置背景为白色
sinplot()
运行结果
  • plotting_context() and set_context()
context = ['paper', 'notebook', 'talk', 'poster']
sns.set_context(context[1], rc={'grid.linewidth': 3.0})
sinplot()
sns.set()#设置为默认
sns.plotting_context()#查看参数
运行结果

相关文章

网友评论

    本文标题:数据分析(5)--Seaborn

    本文链接:https://www.haomeiwen.com/subject/xwukwqtx.html