Matplotlib绘图和可视化

       绘图是数据分析工作中最重要的任务之一,是探索过程的一部分,例如,帮助我们找出异常值、必要的数据转换、得出有关模型的idea等。此外,还可以利用诸如d3.js之类的工具为Web应用构建交互式图像。但是在这里主要讲解的是matplotlib,matplotlib是一个用于创建出版质量图表的桌面绘画包,其目的是为python构建一个MATLAB式的绘图接口。

Matplotlib api入门:

matplotlib API函数(如plot和close)都位于matplotlib.pyplot模块中,其通常的引入约定是:

import matplotlib.pyplot as plt

Figure和Subplot:

matplotlib的图像位于Figure对象中。你可以用plt.figure创建一个新的Figure,创建完之后会弹出一个空窗口:

fig = plt.figure()

plt.figure有一些选项,特别是figsize,它用于确保当图片保存到磁盘时具有一定大小和横纵比,通过plt.gcf()函数即可得到当前Figure的引用。

Figure只是弹出一个空白的窗口,不能通过Figure绘图,必须使用add_subplot()函数创建一个或多个subplot才行:

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

这条代码的意思是:创建的2×2的subplot,且当前选中的是4个subplot中的第一个(编号从1开始),我们也可以依次创建出第二个、第三个:

ax2 = fig.add_subplot(2,2,2)
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--')

其中"k--"是一个线型选项,用于告诉matplotlib绘制黑色虚线图。如果想对其他的subplot进行绘图的话,可以通过上面fig.add_subplot()函数返回的AxesSubplot对象进行绘制,即:

ax1.hist(randn(100), bins=20, color='k', alpha=0.3)
ax2.scatter(np.arange(30), np.arange(30)+3*randn(30))

还有一种比较轻松创建特定布局的Figure和subplot的方式,就是使用plt.subplots()函数,它可以创建一个新的Figure,并返回一个包含已创建的subplot对象的Numpy数组,可以轻松地对axes数组进行索引,就好像一个二维数组一样(例如axes[0,1]):

fig, axes = plt.subplots(2, 3)

pyplot.subplots()函数的具体参数如下所示:

默认情况下,matplotlib会在subplot外围留下一定的边距,并在subplot之间留下一定的间距,间距跟图像的高度和宽度有关,如果你调整了图像的大小其间距也会调整。我们可以利用Figure的subplot_adjust()函数可以轻而易举地修改间距,具体的函数如下所示:

subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。下面是一个简单的例子,我们把间距收缩到了0:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值