Matplotlib绘图和可视化

Matplotlib绘图和可视化

martin

matplotlib API 入门

绘图是数据分析工作中最重要的任务之一,是探索过程中的一部分。例如帮助我们找出异常值、必要的数据转化、得出有关模型的idea等。Python有许多可视化工具,但是这里主要讲解matplotlib(http://matplotlib.sourceforge.net)。matpllotlib API函数(如plot和close)都位于matplotlib.pyplot模块中,其通常的引入约定是:

>>>import matplotlib.pyplot as plt

Figure和Subplot

matplotlib的图像都位于Figure对象中。可以用plt.figure创建一个新的Figure:

>>>fig = plt.figure()   # 创建对象
>>>plt.show()           # 显示图像,无此句代码将不能显示图像

这时会弹出一个空窗口。
1.png-11.8kB
plt.figure有一些选项,特别是figsize,它用于确保当图片保存到磁盘时具有一定大小的纵横比。值得注意的是,不能通过空figure绘图,必须用add_subplot创建一个或者多个subplot才行:

>>>ax1 = fig.add_subplot(2,2,1)

这条代码的意思是:图像应该是2*2的(即有2行2列,定义了图像的位置),且当前选中的是第一个,(编号从一开始)。如果再把后面两个subplot也创建出来,最终得到的图像如图:

>>>ax2 = fig.add_subplot(2,2,2)
>>>ax3 = fig.add_subplot(2,2,3)
>>>plt.show()

2.png-20.3kB

如果这时发出一条绘图命令(如plt.plot([1.5,3.5,-2,1.6])),matplotlib就会在最后一个用过的subplot(如果没有则创建一个)上进行绘制。因此,如果我们执行下列命令,你就会得到如图所示:

>>>from numpy.random import randn
>>>plt.plot(randn(50).cumsum(),'k--')   # 随机选取50个正态分布数进行虚线绘图
plt.show()

3.png-24kB
k–是一个线型选项,用于告诉matplotlib绘制黑色虚线图。上面那些由fig.add_subplot所返回的对象,直接调用他们的实例方法就可以在其他空着的格子里面画图了,如图:

>>>ax1.hist(randn(100),bins=20,color='k',alpha=0.3) # 20个直方图,alpha透明度
>>>ax2.scatter(np.arange(30),np.arange(30)+3*randn(30)) # 绘制散点图
>>>plt.show()

4.png-28.9kB

由于根据特定布局创建figure和subplot是一件非常常见的任务,于是便出现了一个更为方便的方法(plt.subplots),它可以创建一个新的Figure,并返回一个含有已创建的subplot对象的numpy数组:

>>>fig,axes = plt.subplots(2,3)
>>>axes
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f2b593c0a90>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f2b59325890>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f2b592b1f50>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x7f2b59242090>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f2b591a39d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f2b59127ad0>]], dtype=object)
>>>

这是非常实用的,因为可以轻松的对axes数组进行索引,就好像是一个二维数组一样,例如,axes[0,1].hist(randn(100),bins=20,color=&#

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值