Seaborn 是由斯坦福大学提供的一个Python库,经常被用于在Python中制作更加赏心悦目的统计图形,它构建在Matplotlib之上,支持Numpy和Pandas的DataFrame类型,也支持来自于SciPy和SatasModels的统计结果,Seaborn模块是Matplotlib的极好的补充。
Matplotlib的自动化程度非常高,掌握如何设置系统以获得一个具有吸引力的图表并不容易,为了优化Matplotlib图表的外观,Seaborn模块自带许多定制主题和高级接口。Seaborn模块可以用尽可能少的代码和参数绘制尽可能漂亮的图表。
Pandas主要是用来进行数据探索而不是可视化,只有当可视化工作只需要调整少量参数时才用Pandas实现。Pandas 进行自定义可视化,实际上是用底层的Matplotlib进行绘图,需要对Matplotlib 有较深的了解。
若画图时需要个性化修改一些图的属性时,用Seaborn更加合适。因为Seaborn提供了一些简单的API来直接可视化数据,不需要进行参数的理解。
为了控制Matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。Seaborn默认浅灰色背景与白色网络线,如图10.29所示。
Seaborn应用set()函数通过设置参数可以设置背景,调色板等确定主题,其主要参数如下:
set(context='notebook', style='darkgrid', palette='deep', font='sans-serif',
font_scale=1, color_codes=True, rc=None)
style :Seaborn中有五种可供选择的主题:darkgrid(灰色网格)、whitegrid(白色网格)、dark(黑色)、white(白色)和ticks(十字)。显示效果如图10.30所示。
import matplotlib.pyplot as plt # 导入matplotlib库
import numpy as np
def sinplot(flip=1):
x=np.linspace(0,14,100)
for i in range (1,7):
plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)
sinplot()
plt.show()
Matplotlib绘图
import seaborn as sns # 导入seaborn库
sns.set() #用缺省参数确定主题
sinplot()
plt.show()
Seaborn缺省主题绘图
context:绘制参数,其值为None或{paper, notebook, talk, poster}中的一种,与plotting_context()相同。缺省值为’notebook’。
import matplotlib.pyplot as plt # 导入matplotlib库
import seaborn as sns # 导入seaborn库
import numpy as np
def sinplot(flip=1):
x=np.linspace(0,14,100)
for i in range (1,7):
plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)
plt.figure(figsize=(12, 8))
sns.set(context='paper',style='darkgrid')
plt.subplot(2, 2, 1)
sinplot()
plt.title('paper')
sns.set(context='talk',style='whitegrid')
plt.subplot(2, 2, 2)
sinplot()
plt.title('talk')
sns.set(context='talk',style='dark')
plt.subplot(2, 2, 3)
sinplot()
plt.title('poster')
sns.set(context='notebook',style='ticks')
plt.subplot(2, 2, 4)
sinplot()
plt.title('notebook')
plt.show()