zoukankan      html  css  js  c++  java
  • seaborn教程1——风格选择

    原文链接:https://segmentfault.com/a/1190000014915873

    Seaborn学习大纲

    seaborn的学习内容主要包含以下几个部分:

    1. 风格管理

      • 绘图风格设置
      • 颜色风格设置
    2. 绘图方法

      • 数据集的分布可视化
      • 分类数据可视化
      • 线性关系可视化
    3. 结构网格

      • 数据识别网格绘图

    本次将主要介绍颜色调控的使用。

    0、seaborn介绍:

      Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。

    安装方法:

    1 pip install seaborn

    1、管理图表的艺术

      画一个吸引人注意的图表相当重要。当你探索一个数据集,需要画图表,图表看起来令人愉悦是件很高兴的事。在与你的观众交流观点时,可视化同样重要,同时,也很有必要去让图表吸引注意力和印入脑海里。Matplotlib自动化程度非常高,但是,掌握如何设置系统以便获得一个吸引人的图是相当困难的事。为了控制matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。

    1.1 让我们定义一个简单的函数来绘制一些偏移正弦波,这将帮助我们看到可以调整的不同样式参数。使用matplotlib默认值时的图:

    1.2 转换成Seaborn模块,再次绘图

    #转换成Seaborn模块,只需要引入seaborn模块。
    import seaborn as sns
    sns.set()#切换到seaborn默认值
    sinplot()

     seaborn默认浅灰色背景与白色网络线的灵感来源于matplotlib,却比matplotlib的颜色更多柔和。我们发现,网络线对于传播信息很有用,几乎在所有情况下,人们喜欢图甚于表。默认情况下白灰网格的形式可以避免过于刺眼。在多面作图的情况下,网络形式显得相当的有利,提供了一种作图结构,这对模块中的一些复杂工具非常重要。

    2、seaborn的两类函数

    Seaborn 将 matplotlib 的参数划分为两个独立的组合。第一组是设置绘图的外观风格的,第二组主要将绘图的各种元素按比例缩放的,以至可以嵌入到不同的背景环境中。

    操控这些参数的接口主要有两对方法:

    • 控制风格:axes_style()set_style()
    • 缩放绘图:plotting_context()set_context()

    每对方法中的第一个方法(axes_style()plotting_context())会返回一组字典参数,而第二个方法(set_style()set_context())会设置matplotlib的默认参数。

    2.1 控制风格 axes_style() and set_style()

    2.1.1 设置图表主题set_style()

      有五种预设的seaborn主题:暗网格(darkgrid),白网格(whitegrid),全黑(dark),全白(white),全刻度(ticks)。以适应不同人不同的爱好。

     默认主题是暗网格,网格可以帮助我们定量的查找数据,并且灰色背景上的白色网格线可以防止网格线和数据线冲突。

    白网格(WhiteGrid)主题也是类似,但它更适合具有大量数据元素的绘图:

    对于许多绘图(尤其是像talks这样的设置(especially for settings like talks),您主要希望使用图形来提供数据中模式的印象),网格的必要性就降低了,此时可以使用全黑或全白风格
    1 sns.set_style("dark") #全黑风格
    2 sinplot()

    sns.set_style("white") # 全白
    sinplot()

     有时你需要给出一点额外的图表结构信息,此时全刻度模式就派上用场了。
    1 sns.set_style("ticks") #全刻度
    2 sinplot()

     2.1.2 去除轴脊柱

      全白(white)和全刻度(tick)都可以从去除不必要的上边框和右边框中获益。可以调用seaborn函数destine()来删除它们:

    1 sinplot()
    2 sns.despine()

     一些图表获益于限制数据脊柱,这也可以调用destine()来完成。当刻度没有完全覆盖整个轴的范围时,trim参数可以用来限制已有脊柱的范围。

    1 f, ax = plt.subplots()
    2 sns.violinplot(data=data)
    3 sns.despine(offset=10, trim=True);

    你也可以通过despine()控制哪个脊柱将被移除。

    1 sns.set_style("whitegrid")
    2 sns.boxplot(data=data, palette="deep")
    3 sns.despine(left=True)

    2.1.3 临时设置绘图风格

    虽然来回切换风格很容易,但是你也可以在一个with语句中使用axes_style()方法来临时的设置绘图参数。这也允许你用不同风格的轴来绘图:

    1 with sns.axes_style("darkgrid"):
    2     plt.subplot(211)
    3     sinplot()
    4 plt.subplot(212)
    5 sinplot(-1)

    2.1.4 覆盖seaborn风格元素

    如果你想定制化seaborn风格,你可以将一个字典参数传递给axes_style()set_style()的参数rc。而且你只能通过这个方法来覆盖风格定义中的部分参数。

    如果你想要看看这些参数都是些什么,可以调用这个方法,且无参数,这将会返回下面的设置:

     然后你可以设置这些参数的不同版本了

    1 sns.set_style("darkgrid", {"axes.facecolor": ".9"})
    2 sinplot()

     2.2  缩放绘图:plotting_context()set_context()

    有一套的参数可以控制绘图元素的比例。
    首先,让我们通过set()重置默认的参数:

    sns.set()

    有四个预置的环境,按大小从小到大排列分别为:papernotebooktalkposter。其中,notebook是默认的。

    sns.set_context("paper")
    sinplot()

    sns.set_context("talk")
    sinplot()

    sns.set_context("poster")
    sinplot()

    你可以通过使用这些名字中的一个调用set_context()来设置参数,并且你可以通过提供一个字典参数值来覆盖参数。当改变环境时,你也可以独立的去缩放字体元素的大小。

    sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
    sinplot()

     同样的,你可以通过嵌入with语句临时的控制绘图的比例

  • 相关阅读:
    微软MSBI商业智能视频
    华为HG8245 电信 光猫破解获取超级密码
    Html5与CSS3权威指南 百度云下载
    GUI常用对象介绍3
    GUI常用对象介绍2
    GUI常用对象的属性
    AtCoder Beginner Contest 082 B
    AtCoder Beginner Contest 082 A
    回文字符串
    进制转换(大数)
  • 原文地址:https://www.cnblogs.com/weststar/p/11642810.html
Copyright © 2011-2022 走看看