matplotlib

今天我们来介绍一下python的一个可视化工具matplotlib

matplotlib

使用matplotlib的方式有很多,但最通常的是Pylab模式的ipython(-ipython –pylab)

matplotlib的api都位于matplotlib.pyplot中,所以一般的引入方式为:

import matplotlib.pyplot as plt
Figure、Subplot
Figure

matplitlib的图像必须在Figure中,Figure创建方式如下:

fig = plt.figure() # 之后会弹出一个Figure窗口

创建好Figure后,并不能直接绘图,需要使用add_subplot创建一个或多个子图,在子图中绘图,创建方式如下:

ax1 = fig.add_subplot(2,2,1) # 将figure分为四块,在第一块创建一个子图;返回AxesSubplot对象

之后我们就可以绘制我们的图像了

plt.plot(randn(50).cumsum(), 'k--') 

Figure和subplot的创建经常使用,所以matplotlib提供了简洁的创建方式:

fig, axes = plt.subplots(2,3) # 创建一个新Figure、并返回一个含有已创建subplot对象的Numpy数组 
ax = axes[0,1] # 引用第一行第二列的subplot对象

该函数的一些参数选项:

在这里插入图片描述

调整图像之间的间距

通常情况下,matplotlib会在subplot外围留下一些边距,并在subplot之间留下一些间距。

我们可以利用subplots_adjust()函数来修改间距

subplots_adjust(left=None,bootom=None,right=None,top=None,wspace=None,hspace=None) # 该函数是一个顶级函数;wspace、hspace用来控制宽度和高度的百分比,用作subplot之间的间距
plt.subplots_adjust(wspace=0, hspace=0) # 设置subplots之间的间距为0
颜色、线型和标记

matplotlib的plot()函数接受一组X和Y坐标,和一个表示颜色和线形的字符串

ax.plot(x,y,'g--') # 根据x,y绘制绿色虚线
# ax为一subplot
刻度、标签和图例
设置X轴范围:
plt.xlim() # 返回当前X轴的范围
plt.xlim([0,10]) # 将X轴的范围设为[0, 10]
# 以上方法都只对当前或最近创建的Subplot起作用
设置标题、轴标签、刻度以及刻度标签
  • 设置标题

    ax.set_title("My first matplotlib plot") # 设置对应dubplot的标题
    
  • 设置轴标签

    ax.set_xlabel() # 为对应subplot的x轴设置标签
    ax.set_ylabel()
    
  • 设置刻度

    设置刻度有两个方法,set_xticks和set_xticklabels,前者告诉maatplotlib将刻度放在对应范围的哪个位置,默认情况下这些刻度就是刻度标签;后者可以将任何其他类型的值作为标签

    ax.set_xticks([0,1,2,3,4]) # 将0,1,2,3,4作为x轴刻度标签
    ax.set_xticklabels(['one','two','three','four','five']) # 将one,two,three,four,five作为x轴刻度标签
    ax.set_yticks()
    ax.set_xticklabels()
    
添加图例

图例是标识图表元素的重要工具。

  • 方式一,在添加subplot时传入label参数
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(), 'k--', label='one')
ax.plot(randn(1000).cumsum(), 'k', label='two')
ax.plot(randn(1000).cumsum(), 'k.', label='three')
ax.legend(loc='best') # loc指定图例放置的位置,'best'参数标识系统将图例放置到最不碍事的地方

在这里插入图片描述

将图标保存到文件

利用plt.savefig可以将当前图表保存到文件

plt.savefig('figpath.png', dpi=400) # 将当前图表存储为png文件
# dpi参数指定每英寸点数(分辨率)

Pandas中的绘图函数

从上面的例子中我们可以看出,matplotlib实际上是一个比较低级的画图工具,当我们绘制一张图标时,往往要指定他的多个属性,如图例,标签,标题等。而pandas中的绘图函数大大简化了这个过程。

Series与DataFrame数据都可以通过调用plot函数来绘制图表

  • Series:

    s = Series(np.random.randn(10).cumsum(), index=np.arange(0,100,10))
    s.plot()
    

在这里插入图片描述
在这里插入图片描述

  • DataFrame:

    df = DataFrame(np.random.randn(10,4).cumsum(), columns=['A','B','C','D'],index=np.arange(0,100,10))
    # columns参数指定图例名称,index指定x轴标签
    # np.random.randn(10,4)共10行4列,产生四条曲线,每条曲线十个数据点
    df.plot()
    

在这里插入图片描述
在这里插入图片描述

除了matplotlib外,还有许多优秀的画图工具,如chaco、mayavi等

目前对于matplotlib的介绍就是这些,更多的知识可以研究一下pandas官方文档(pandas正在不断地更新中,会提供越来越多的函数),链接如下:

http://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html

  • 15
    点赞
  • 181
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值