美文网首页
Python可视化除了matplotlib以外,另一个强大的可视

Python可视化除了matplotlib以外,另一个强大的可视

作者: 孤城暮雨丶 | 来源:发表于2020-12-09 13:27 被阅读0次

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

    以下文章来源于腾讯云 作者:Python进击者

    seaborn

    Seaborn is a library for making statistical graphics in Python. It is
    built on top of matplotlib and closely integrated with pandas data
    structures.

    上面这段话是摘自seaborn的官网,翻译过来的意思就是Seaborn是一个制作统计图形的第三方Python库。它是基于matplotlib而建立的并且它与pandas数据结构有着紧密的连接。

    其实简单来说,它就是一个matplotlib的升级版,作为升级版固然会让我们的使用更加的简单,下面我们来看看seaborn。


    在这里插入图片描述

    安装seaborn
    pip安装:

    pip install seaborn
    
    

    conda安装:

    conda install seaborn
    
    

    这里需要注意的一点是,seaborn依赖于Python3.6及其以上的版本。

    并且需要强制安装以下的依赖第三方库:

    numpy (>= 1.13.3)
    
    scipy (>= 1.0.1)
    
    pandas (>= 0.22.0)
    
    matplotlib (>= 2.1.2)
    
    

    内置数据集

    seaborn有一个让我比较惊艳的地方是它自带有数据集,我们可以直接通过相关的函数就可以进行调用,数据集的文件也可以在下面的GitHub地址中获取。

    https://github.com/mwaskom/seaborn-data

    对于数据集的使用,我们这里可以引用一个官方的例子来实现:


    在这里插入图片描述
    import seaborn as sns
    import matplotlib.pyplot as plt
    import ssl
     # 此处的代码是防止ssl报错
    ssl._create_default_https_context = ssl._create_unverified_context
    sns.set(style="ticks") 
    
    # 导入anscombe数据集
    df = sns.load_dataset("anscombe")  
    
    sns.lmplot(x="x", y="y", col="dataset", hue="dataset", data=df,
               col_wrap=2, ci=None, palette="muted", height=4,
               scatter_kws={"s": 50, "alpha": 1})
    # 在pycharm中,我们需要通过matplotlib来让seaborn图形显示
    plt.show()
    
    

    效果图:


    在这里插入图片描述

    seaborn API

    要想知道seaborn怎么使用,能够画哪些图形,了解它的API是必不可少的。这里需要注意的是seaborn中的数据集必须是pandas中的Dataframe或者Numpy中的数组,这就说明了为什么pandas和numpy是必备的依赖库。

    1.lineplot
    seaborn.lineplot(x=None, y=None, hue=None, size=None, style=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, dashes=True, markers=None, style_order=None, units=None, estimator='mean', ci=95, n_boot=1000, seed=None, sort=True, err_style='band', err_kws=None, legend='brief', ax=None, **kwargs)
    
    

    通过单词的字面意思,我们可以想到的是折线图,确实lineplot可以帮助我们画出漂亮的折线图。它的属性值非常的多,这里我们也不会一一全部介绍。

    首先直接扔出代码

    import seaborn as sns
    
    import matplotlib.pyplot as plt
    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context # 解决ssl报错
    
    # 拿到名字为 fmri 的数据集
    fmri = sns.load_dataset("fmri")
    
    # 解析请继续往下看
    ax = sns.lineplot(x="timepoint", y="signal",data=fmri,
                      style="event", hue="event", markers=True
                      , ci=0, lw=1, 
                    )
    
    plt.show()
    
    

    效果图


    在这里插入图片描述

    首先,大家可以看下数据集

    https://github.com/mwaskom/seaborn-data/blob/master/fmri.csv

    在这里插入图片描述
    ax = sns.lineplot(
    x="timepoint", 
    y="signal",
    data=fmri,
    style="event", 
    hue="event", 
    markers=True, 
    ci=0, 
    lw=1, 
    )             
    
    
    在这里插入图片描述 在这里插入图片描述

    lw控制的是折线的宽度,如果lw=10则为


    在这里插入图片描述
    2.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([12,15,13,16,23,11,5,6])
    
    df = pd.DataFrame({"x": x,"y": y})
    
    sns.barplot("x","y",palette="RdBu_r",data=df)
    plt.xticks(rotation=90)
    plt.show()
    
    

    效果图:


    在这里插入图片描述

    这里的代码顾名思义就非常的简单易懂了,其中palette="RdBu_r"是使用一种颜色模板。

    相关文章

      网友评论

          本文标题:Python可视化除了matplotlib以外,另一个强大的可视

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