美文网首页Computer Science
[数据可视化]Seaborn简单介绍

[数据可视化]Seaborn简单介绍

作者: 浩成聊技术 | 来源:发表于2018-09-02 10:05 被阅读169次

    什么是Seaborn

    Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

    Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。

    按照国际惯例,先装一波

    pip3 install seaborn
    

    什么报错了,报错是肯定的,seaborn包依赖于scipy包,所以要先装scipy,解决方法如下:

    升级pip解决了这个问题

    python3 -m pip install --upgrade pip
    
    # 安装包并安装这个包所需的依赖包(sc)
    pip3 install seaborn -U
    
    # 或者
    pip3 install scipy
    pip3 install seaborn
    

    seaborn API

    Seaborn 要求原始数据的输入类型为 pandas 的 Dataframe 或 Numpy 数组,画图函数有以下几种形式:

    sns.图名(x='X轴 列名', y='Y轴 列名', data=原始数据df对象)

    sns.图名(x='X轴 列名', y='Y轴 列名', hue='分组绘图参数', data=原始数据df对象)

    sns.图名(x=np.array, y=np.array[, ...])

    • 直方图的绘制

    barplot

    将点估计和置信区间显示为矩形条。

    条形图表示具有每个矩形的高度的数值变量的集中趋势的估计,并且使用误差条提供围绕该估计的不确定性的一些指示

    API介绍

    seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)
    

    Example for barplot

    import seaborn as sns
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    x = np.arange(8)
    y = np.array([1,5,3,6,2,4,5,6])
    
    df = pd.DataFrame({"x-axis": x,"y-axis": y})
    
    sns.barplot("x-axis","y-axis",palette="RdBu_r",data=df)
    plt.xticks(rotation=90)
    plt.show()
    

    横坐标为0-7的整数,纵坐标表示这八个整数分别所占的权重,调整 palette 参数可以美化显示风格

    image

    seaborn.barplot实战

    1.数据集

    通过爬虫爬取了猫眼上面,用户对电影《狄仁杰之四大天王》的影评,如下图所示,包括
    (1.评论时间;(2.评论者的用户ID;(3.评论者所在地区;(4.评分;(5.评论内容
    根据评分,我们来看一看,电影的评分的分布情况


    image
    2.代码
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    f = open('狄仁杰.txt',encoding='UTF-8')
    data = pd.read_csv(f,sep=',',header=None,encoding='UTF-8',names=['date','nickname','city','rate','comment'])
    
    #评分分析
    rate = data['rate'].value_counts()
    sns.set_style("darkgrid")
    bar_plot = sns.barplot(x=(rate.index),y=(rate.values/sum(rate)),palette="muted")
    plt.xticks(rotation=90)
    plt.show()
    

    通过pandas,读取出数据在 data中,评分在rate下面 ,data['rate'].value_counts(),统计出各分数的人数,如下图所示

    image

    最后横坐标为rate.index(0.0,0.5,1.0,1.5....5.0),纵坐标为给出各分数的人数/总人数,这很容易理解,最后算出的就是,这个评分所占的比例。

    3.分析结果
    image

    看到超过40%的人给出了5.0的评分,超过85%的人给出了3.5以上的评分,至少说明这部电影在口碑方面上取得的成绩是比较好的.

    小结

    结合爬虫爬取下来的电影数据,根据评分来通过seaborn绘制出评分的发布直方图,只介绍了seaborn的一种方法,不要着急,stpe by stpe.事实上一头扎进文档里,我相信看过5种绘图方式,你就记不住了,方法学会了,之后,根据需求,查阅文档,现学现用就行了

    相关文章

      网友评论

        本文标题:[数据可视化]Seaborn简单介绍

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