Matplotlib实践系列:折线图完全示例

matplotlib是Python下最常用的数据可视化绘图库,功能强大,绘图精美,虽然也有基于matplotlib的seabron库,极大得简化的绘图的流程,但个人还是更加偏向于在静态数据可视化方面使用matplotlib来进行绘图工作。 下面,我们从matplotlib的绘图实践出发,了解如何使用matplotlib绘制可观的图形。 此文简陋,权作引路,更丰富详细的用法和实例,还请自己到matplotlib官网上详参。

一、引入matplotlib

在此, 我们使用tushare模块的股票数据来作为绘图的演示数据

data = ts.get_hist_data('sz50',start='2016-11-01',end='2016-12-30')

data = data.sort_index()

首先,我们绘制一个基本的折线图

简单的使用plot()方法就绘制出了一个基本的的折线图。

为了方便下面的演示,我们在图形里面再加入一个最高价的折线图

在plot()方法后面,再加入一个绘制折线图的方法,就可以在同一个图形里绘制出第二条折线,就是这么简单。

但是我们发现两个问题,第一,图形过小不便于查看,第二,两条折线因为比较相近,颜色也不易区分,接下来,咱们设置一下图形的大小和线条的颜色。

实例化一个figure对象,使用参数figsize设置其大小为(16,8),这样,下面的绘图方法都是继承于figure这个对象的属性了。

我们再解决第二个问题,线条颜色

我们在plot()方法里面使用color属性,把最高价的折线颜色设置为了红色,这样两条折线看起来就容易分清楚了。

但是这样的图片还是太过于简陋,我们把折线图的标题、X轴信息,Y轴信息,图例加上:

因为X轴的信息为时间戳,在这里,我们使用的matplotlib.pylab的datestr2num方法,将时间字符串转换为数字,然后再通过plot_date()方法绘制出折线图,普通的X轴信息使用plt.xticks即可设置。

使用title()方法设置标题,xlable()方法设置X轴说明,ylable()方法设置Y轴说明,legend()方法设置图例。

这样,一个基本的折线图就完成了,但是看着并不是很美观,我们把它美化一下。

这样虽然看起来比之前好看很多了,但是仍然觉得画面粗糙感很强,我们可以试着换一个图形主题。

在这里,我们使用了plt.style.use来设置图形的风格为ggplot,matplotlib官方提供了五种不同的图形风格,分别是:bmh、ggplot、dark_background、fivethirtyeight和grayscale。

更多matplotlib的用例,详见官网的说明。

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2017-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5377
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2872
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2627
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5656
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2727
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7068
来自专栏飞扬的花生

jsencrypt参数前端加密c#解密

      写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度...

3919
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2120
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3225

扫码关注云+社区