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 - 图形美学

要想把同样的绘图改为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()

输出

Seaborn - 图形美学

上面两张图显示了默认的Matplotlib和Seaborn图的区别。数据的表现形式是相同的,但两者的表现风格不同。

基本上,Seaborn将Matplotlib的参数分成两组–

  • 图形样式
  • 图形比例

Seaborn图表样式

操作样式的接口是 set_style() 。 使用这个函数,你可以设置绘图的主题。根据最新的更新版本,以下是五个可用的主题。

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

让我们尝试从上述列表中应用一个主题。绘图的默认主题将是 darkgrid ,我们在前面的例子中已经看到。

例子

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()

输出

Seaborn - 图形美学

上述两幅图的区别在于背景颜色

去除轴Spines

在white和ticks主题中,我们可以使用 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()

输出

Seaborn - 图形美学

在常规图中,我们只使用左轴和底轴。使用 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()

输出

Seaborn - 图形美学

缩放绘图元素

我们还可以对绘图元素进行控制,可以使用 set_context() 函数控制绘图的比例。我们有四个预设的语境模板,基于相对大小,这些语境的名称如下

  • Paper
  • Notebook
  • Talk
  • Poster

默认情况下,上下文被设置为笔记本;并在上面的图中使用。

例子

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()

输出

Seaborn - 图形美学

与上述绘图相比,实际绘图的输出尺寸更大。

注意 - 由于我们网页上图像的缩放,你可能会错过我们例子中的实际差异。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程