注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结。今天终于有时间来完成这个计划了!
0. Python中常用的可视化工具
Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用、接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分。在Python中,使用的最多的数据可视化工具是matplotlib,除此之外还有很多其他可选的可视化工具包,主要包括以下几大类:
- matplotlib以及基于matplotlib开发的工具包:pandas中的封装matplotlib API的画图功能,seaborn,networkx等;
 - 基于JavaScript和d3.js开发的可视化工具:plotly等,这类工具可以显示动态图且具有一定的交互性;
 - 其他提供了Python调用接口的可视化工具:OpenGL, GraphViz等,这一类工具各有特点且在特定领域应用广泛.
 
对于数据科学,用的比较多的是matplotlib和seaborn,对数据进行动态或交互式展示时会用到plotly.
1. matplotlib与MATLAB
Matplotlib是建立在NumPy数组基础上的多平台数据可视化程序库,John Hunter在2002年提出了matplotlib的初步构想——在Python中画出类似MATLAB风格的交互式图形。鉴于此种渊源,类似MATLAB风格的画图接口是matplotlib的两种画图接口之一。这类接口直观、便捷,许多语法与MATLAB类似,也是初学者常用的方式。
这种接口最重要的特性是有状态的(stateful):它会持续跟踪"当前的"图形和坐标轴,所有plt命令都可以应用。可以用plt.gcf()(获取当前图形)和plt.gca()(获取当前坐标轴)来查看具体信息。
matplotlib画图的基本设置:
1 import matplotlib as mpl 2 import matplotlib.pyplot as plt 3 mpl.rcParams['axes.linewidth'] = 1.5 #set the value globally, 设置坐标轴线宽4 import seaborn as sns 5 sns.set() # 使用seaborn设置绘图风格
更多自定义设置可以参考官方文档:Customizing matplotlib
下面使用MATLAB风格画图,对一组分类变量(categorical variables)进行可视化
1 names = ['group_a', 'group_b', 'group_c'] # 不同分类的名称 2 values = [1, 10, 100] # 不同分类对应的值 3 4 plt.figure(1, figsize=(9, 3)) # 设置图片大小 5 6 plt.subplot(131) # 1x3, 第一个子图 7 plt.bar(names, values) # 柱状图 8 plt.subplot(132) # 1x3, 第二个子图 9 plt.scatter(names, values) # 散点图10 plt.subplot(133) # 1x3, 第三个子图11 plt.plot(names, values)

