- Seaborn 教程
- Seaborn - 首页
- Seaborn - 简介
- Seaborn - 环境设置
- 导入数据集和库
- Seaborn - 图形美学
- Seaborn - 调色板
- Seaborn - 直方图
- Seaborn - 核密度估计
- 可视化成对关系
- Seaborn - 绘制分类数据
- 观测值的分布
- Seaborn - 统计估计
- Seaborn - 绘制宽格式数据
- 多面板分类图
- Seaborn - 线性关系
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函数参考
- Seaborn - 函数参考
- Seaborn 有用资源
- Seaborn - 快速指南
- Seaborn - 有用资源
- Seaborn - 讨论
Seaborn - 图形美学
可视化数据是一个步骤,进一步使可视化数据更美观是另一个步骤。可视化在将定量见解传达给受众以吸引他们的注意力方面起着至关重要的作用。
美学是指一组与美本质和欣赏相关的原则,尤其是在艺术中。可视化是一种以有效且最简单的方式表示数据的艺术。
Matplotlib 库高度支持自定义,但要了解哪些设置需要调整才能获得有吸引力和预期的绘图,这是人们应该注意以利用它的。与 Matplotlib 不同,Seaborn 随附自定义主题和用于自定义和控制 Matplotlib 图形外观的高级接口。
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) sinplot() plt.show()
以下是使用默认 Matplotlib 的绘图外观 -
要将相同的绘图更改为 Seaborn 默认值,请使用set()函数 -
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set() sinplot() plt.show()
输出
以上两幅图显示了默认 Matplotlib 和 Seaborn 绘图的差异。数据的表示方式相同,但两种表示风格都不同。
基本上,Seaborn 将 Matplotlib 参数分为两组 -
- 绘图样式
- 绘图比例
Seaborn 图形样式
操纵样式的接口是set_style()。使用此函数,您可以设置绘图的主题。根据最新更新的版本,以下是可用的五个主题。
- 暗网格
- 白网格
- 暗色
- 白色
- 刻度
让我们尝试应用上面列出的主题之一。绘图的默认主题将是暗网格,我们在前面的示例中已经看到过。
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("whitegrid") sinplot() plt.show()
输出
以上两幅图的区别在于背景颜色
移除坐标轴脊
在白色和刻度主题中,我们可以使用despine()函数移除顶部和右侧坐标轴脊。
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("white") sinplot() sb.despine() plt.show()
输出
在常规绘图中,我们仅使用左侧和底部坐标轴。使用despine()函数,我们可以避免不必要的右侧和顶部坐标轴脊,这在 Matplotlib 中不受支持。
覆盖元素
如果要自定义 Seaborn 样式,可以将参数字典传递给set_style()函数。可用的参数可以使用axes_style()函数查看。
示例
import seaborn as sb print sb.axes_style
输出
{'axes.axisbelow' : False, 'axes.edgecolor' : 'white', 'axes.facecolor' : '#EAEAF2', 'axes.grid' : True, 'axes.labelcolor' : '.15', 'axes.linewidth' : 0.0, 'figure.facecolor' : 'white', 'font.family' : [u'sans-serif'], 'font.sans-serif' : [u'Arial', u'Liberation Sans', u'Bitstream Vera Sans', u'sans-serif'], 'grid.color' : 'white', 'grid.linestyle' : u'-', 'image.cmap' : u'Greys', 'legend.frameon' : False, 'legend.numpoints' : 1, 'legend.scatterpoints': 1, 'lines.solid_capstyle': u'round', 'text.color' : '.15', 'xtick.color' : '.15', 'xtick.direction' : u'out', 'xtick.major.size' : 0.0, 'xtick.minor.size' : 0.0, 'ytick.color' : '.15', 'ytick.direction' : u'out', 'ytick.major.size' : 0.0, 'ytick.minor.size' : 0.0}
更改任何参数的值都会更改绘图样式。
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("darkgrid", {'axes.axisbelow': False}) sinplot() sb.despine() plt.show()
输出
缩放绘图元素
我们还可以控制绘图元素,并可以使用set_context()函数控制绘图的比例。我们有四个预设的上下文模板,基于相对大小,上下文命名如下
- 纸张
- 笔记本
- 演讲
- 海报
默认情况下,上下文设置为笔记本;并在上面的绘图中使用。
示例
import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("darkgrid", {'axes.axisbelow': False}) sinplot() sb.despine() plt.show()
输出
与上面的绘图相比,实际绘图的输出尺寸更大。
注意 - 由于我们在网页上缩放图像,您可能会错过我们示例绘图中的实际差异。