Seaborn图形可视化基础
- Seaborn可视化
- Seaborn与Matplotlib
Seaborn可视化
即使matplotlib
已经如此强大了,但是不得不承认它不支持的功能还有很多。
例如:
-
2.0
之前的版本的默认配置样式绝对不是用户的最佳选择; -
matplotlib
的API比较底层。虽然可以实现复杂的统计数据可视化,但是通常都需要写大量的样板代码; -
matplotlib
不支持Pandas
的DataFrame
数据的可视化,必须先提取每个Series
。
对于这些问题的终结者就是seaborn
。Seaborn
在 Matplotlib
的基础上开发了一套 API,为默认的图形样式和颜色设置提供了理智的选择,为常用的统计图形定义了许多简单的高级函数,并与 Pandas DataFrame
的功能有机结合。Seaborn
是在matplotlib
的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn
能做出很具有吸引力的图。
而使用matplotlib
就能制作具有更多特色的图。应该把Seaborn
视为matplotlib
的补充,而不是替代物。同时它能高度兼容numpy
与Pandas
数据结构以及scipy
与statsmodels
等统计模式。
Seaborn与Matplotlib
下面用 Matplotlib
的经典图形样式和配色方案画一个简易的随机游走图。
import matplotlib.pyplot as plt
plt.style.use('classic')
import numpy as np
import pandas as pd
rng = np.random.RandomState(0)
x = np.linspace(0, 10, 500)
y = np.cumsum(rng.randn(500, 6), 0)
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left')
plt.show()
在看看使用seaborn
来实现。我们会发现,Seaborn
不仅有许多高级的画图功能,而且可以改写matplotlib
的默认参数,从而用简单的matplotlib
脚本获得更好的效果。可以用Seaborn
的set()
方法设置样式。
import seaborn as sns
sns.set()
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left')
plt.savefig("T2.png")
plt.show()
上面应用了seaborn
的默认样式。seaborn
有5个seaborn
的主题,适用于不同的应用和人群偏好:
-
darkgrid
黑色网格(默认); -
whitegrid
白色网格; -
dark
黑色背景; -
white
白色背景; -
ticks
应该是四周都有刻度线的白背景。