为了账号安全,请及时绑定邮箱和手机立即绑定

第八节 数据可视化

标签:
Python

这两天没更新,好好反思了一下自己的人生观、价值观和世界观,松懈了两天,也等于给自己打了两针强心剂。与过往做个了断,剩余的时间,去实现自己心中想过但一直搁置的事。

进入正题,主要写数据的可视化库(matplotlib)

一、matplotlib API入门

webp

1、Figure和Subplot

matplotlib的图像都位于Figure对象中.。

webp

对于复杂的图形必须将所有的绘图命令存在一个cell里。例如:

webp

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

webp

创建包含subplot网格的figure是一个非常常见的任务。

plt.subplots方法可以创建一个新的Figure,并返回一个含有已创建的subplot对象的NumPy数组。

webp

这是非常实用的,因为可以轻松地对axes数组进行索引,就好像是一个二维数组一样,例如axes[0,1]。你还可以通过sharex和sharey指定subplot应该具有相同的X轴或Y轴。在比较相同范围的数据时,这也是非常实用的,否则,matplotlib会自动缩放各图表的界限。

pyplot.subplots的参数:

webp

2、调整subplot周围的间距

matplotlib会在subplot外围留下一定的边距,并在subplot之间留下一定的间距。利用Figure的subplots_adjust方法可以轻而易举地修改间距。

webp

wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。

webp

各subplot之间没有间距

3、颜色、标记和线型

matplotlib的plot函数接受一组X和Y坐标,还可以接受一个表示颜色和线型的字符串缩写。

webp

常用的颜色可以使用颜色缩写,你也可以指定颜色码(例如,'#CECECE')。你可以通过查看plot的文档字符串查看所有线型的合集。

线图可以使用标记强调数据点。标记也可以放到格式字符串中,但标记类型和线型必须放在颜色后面。

webp

在线型图中,非实际数据点默认是按线性方式插值的。可以通过drawstyle选项修改。

webp

不同drawstyle选项的线型图

因为我们传递了label参数到plot,我们可以创建一个plot图例,指明每条使用plt.legend的线。

4、刻度、标签和图例

对于大多数的图表装饰项,其主要实现方式有二:使用过程型的pyplot接口(例如,matplotlib.pyplot)以及更为面向对象的原生matplotlib API。

pyplot接口的设计目的就是交互式使用,含有诸如xlim、xticks和xticklabels之类的方法。它们分别控制图表的范围、刻度位置、刻度标签等。其使用方式有以下两种:

调用时不带参数,则返回当前的参数值(例如,plt.xlim()返回当前的X轴绘图范围)。

调用时带参数,则设置参数值(例如,plt.xlim([0,10])会将X轴的范围设置为0到10)。

所有这些方法都是对当前或最近创建的AxesSubplot起作用的。它们各自对应subplot对象上的两个方法,以xlim为例,就是ax.get_xlim和ax.set_xlim。使用subplot的实例方法在处理多个subplot时更清楚一些。

5、设置标题、轴标签、刻度以及刻度标签

要改变x轴刻度,最简单的办法是使用set_xticks和set_xticklabels。前者告诉matplotlib要将刻度放在数据范围中的哪些位置,默认情况下,这些位置也就是刻度标签。但我们可以通过set_xticklabels将任何其他的值用作标签:

webp

等价:

webp

6、添加图例(legend)

在添加subplot的时候传入label参数,在此之后,可以调用ax.legend()或plt.legend()来自动创建图例。

webp

legend方法有几个其它的loc位置参数选项,loc告诉matplotlib要将图例放在哪。"best"是不错的选择,因为它会选择最不碍事的位置。要从图例中去除一个或多个元素,不传入label或传入label='_nolegend_'即可。

7、注解以及在Subplot上绘图

除标准的绘图类型,你可能还希望绘制一些子集的注解,可能是文本、箭头或其他图形等。注解和文字可以通过text、arrow和annotate函数进行添加。text可以将文本绘制在图表的指定坐标(x,y),还可以加上一些自定义格式:

webp

注解中可以既含有文本也含有箭头。我们根据最近的标准普尔500指数价格(来自Yahoo!Finance)绘制一张曲线图,并标出2008年到2009年金融危机期间的一些重要日期:

webp

webp

 2008-2009年金融危机期间的重要日期

webp

matplotlib有一些表示常见图形的对象。这些对象被称为块(patch)。要在图表中添加一个图形,你需要创建一个块对象shp,然后通过ax.add_patch(shp)将其添加到subplot中。

webp

8、将图表保存到文件

利用plt.savefig可以将当前图表保存到文件。该方法相当于Figure对象的实例方法savefig。

webp

Figure.savefig的选项  

webp

文件类型是通过文件扩展名推断出来的。因此,如果你使用的是.pdf,就会得到一个PDF文件。发布图片时最常用到两个重要的选项是dpi(控制“每英寸点数”分辨率)和bbox_inches(可以剪除当前图表周围的空白部分)



作者:owolf
链接:https://www.jianshu.com/p/9dc7b163f567


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消