绘图是数据分析最重要的工作之一,也是探索数据的过程之一。我们平常可能使用excel、spss、stata、matlab,或者echarts、D3等等进行可视化。虽然基于web的可视化是现在的主流趋势,但在分析过程中,利用python探索数据仍然不可或缺。Python有许多可视化库,这里介绍最常用的matplotlib。
Matplotlib API函数都位于matplotlib.pyplot模块中,我们需要引入matplotlib.pyplot包。直接利用函数就可以绘图:
示例1
示例1当中,直接利用plt.plot生成line折线图,三个参数一个是分别是x轴,y轴,以及定义颜色的color参数,另外还可以用linestyle来设置线型,linewidth设置粗细,marke
r
设置点的形状等。而title,xlable,ylable,lable也都很好理解,分别是标题、x轴名称,y轴名称和图例,loc告诉你图例放在那儿,‘best’就会放在最不碍事的地方。
其实,matplotlib的所有对象都位于Figure中,我们可以用plt.figure创建一个新的Figure。然而,我们不能通过空Figure绘图,而必须使用add_subplot创建一个或多个subplot才行。
示例2
示例2 当中生成了Figure对象,放了两个子图进去。从这两个例子我们也可以看出,matplotlib实际上有些低效,要组装一个表要各种对象。这时候pandas又出来充当了帮手。
我们可以用Series或者DataFrame直接船钓数据给plot,Series.plot()同样有一些参数来定义图表:
参数
说明
label
用于图例的标签
ax
Subplot对象,默认为当前对象
style
传给matlibplot的风格字符串,如‘ko--’
alpha
图表的填充不透明度(0-1之间)
kind
可以使‘line’,’bar’,’barh’,’kde
xtick
X轴刻度值
xlim
X轴界线,如[0,100]
…
DataFrame.plot()还有一些单独的参数,例如subplots将列绘制在单独的subplot中, sharesx是否共用x轴,sort_columns按字母顺序绘制各列等。
python的图形化工具还包括mpl_toolkits.basemap绘制地图,3D图形库mayavi等等,需要的时候可以用一用。