利用python进行数据分析
第八章:绘图和可视化
matplotlib APL入门
>>> import matplotlib.pyplot as plt
>>> import numpy as np
1,Figure和Subplot
matplotlib的图像都位于Figure对象中,可通过plt.figure创建一个新的Figure
>>> fig=plt.figure()
#创建一个新的Figure
>>> plt.show()
#可展示图形结果
因为不能通过空的Figure绘图,所以必须用add_subplot创建一个或多个subplot才能进行绘图
>>> ax1=fig.add_subplot(2,2,1)
#表示图形排布是2X2横向两张图,纵向两张图,且当前选中的是4个subplot中的第一个(编号从1开始)。后面还会再创建两个subplot
>>> ax2=fig.add_subplot(2,2,2)
#所以add_subplot一定要有三个输入参数
>>> ax3=fig.add_subplot(2,2,3)
如果这时发出一条绘图命令(如plt.plot([1.5, 3.5, -2, 1.6])),matplotlib就会在最后一个用过的subplot(如果没有则创建一个)上进行绘图。
>>> from numpy.random import randn
>>> plt.plot(randn(50).cumsum(), 'k--')
[<matplotlib.lines.Line2D object at 0x0000000008E74630>]
>>> plt.show()
“k–”是一个线型选项,表示黑色虚线。“–”表示虚线,“-”表示实线
线条颜色选型:
| Alias | Color |
|‘b’ | blue |
|‘g’ | green |
|‘r’ | red |
|‘c’ | cyan |
|‘m’| magenta |
|‘y’ | yellow |
|‘k’ | black |
|‘w’| white |
之后再输入如下内容能够将上述三个图表内均进行画图
>>> _=ax1.hist(randn(100), bins=20, color='k', alpha=0.3)
>>> ax2.scatter(np.arange(30), np.arange(30)+3*randn(30))
>>> plt.show()
会展示画图的三张图片,‘k–’,ax1和ax2
可利用plt.subplots方法创建Figure和subplot任务,它可以创建一个新的Figure,并返回一个含有已经创建的subplot对象的NumPy数组
>>> fig, axes=plt.subplots(2, 3)
#创建一个两行三列的空图表
>>> fig
<matplotlib.figure.Figure object at 0x0000000008CA6E10>
>>> axes
array([[< matplotlib.axes._subplots.AxesSubplot object at 0x0000000008EED4A8>,
< matplotlib.axes._subplots.AxesSubp