利用python进行数据分析
第八章:绘图和可视化
pandas中的绘图函数(更加详细的绘图资料可参考pandas.pdf文档中的Visualization这一章)
比较matplotlib和pandas发现,matplotlib进行绘图需要多种组建进行数据展示,通常制作一张完整的图需要用到多个对象。相比之下pandas有许多能够利用DataFrame对象数据组织特点来创建标准图表的高级绘图方法。
需要安装scipy,pip install scipy -i https://pypi.douban.com/simple/
>>> import pandas as pd
>>> import numpy as np
>>> from pandas import Series, DataFrame
>>> import matplotlib.pyplot as plt
1,线型图,plot()
Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下他们所生成的是线型图:
>>> s=Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10))
>>> s
#生成一个Series对象
0 0.989266
10 -0.150003
20 1.275347
30 -1.192475
40 -1.393699
50 -1.729970
60 -1.232880
70 -0.257553
80 1.457312
90 0.693616
dtype: float64
>>> s.plot()
#默认绘制的是线性图
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000005D89B38>
>>> plt.show()
该Series对象的索引会被传给matplotlib,并用以绘制X轴,(X轴的刻度是0, 10, 20, 30 … … 80, 90)。如果不想用Series对象的index作为图表的X轴,可加入use_index=False属性
>>> s.plot(use_index=False)
这时X轴的刻度变为0, 1, 2, 3 … … 8, 9,即利用对象索引作为X轴的刻度
例如,X轴的刻度和界限可通过xtricks和xlim选项进行调节,Y轴就用ytricks和ylim选项进行调节,其他plot的参数与matplotlib的参数都相同
>>> plt.plot()
pandas的大部分绘图方法都有一个可选的ax参数,它可以是一个matplotlib的subplot对象。这使你能够在网格布局中更为灵活的处理subplot的位置。
DataFrame的plot方法会在一个subplot中为格列绘制一条线,并自动创建图例,同时不同线条用不同颜色进行标记:
>>> df=DataFrame(np.random.randn(10, 4).cumsum(0), columns=['A', 'B', 'C', 'D'], index=np.arange(0, 100, 10))
>>> df
A B C D
0 -0.116409 1.109281 -0.135529 0.406155
10 1.107530 -0.023620 -2.514431 1.171518
20 0.082471 1.473273 -2.10883