Python---MatPlotlib库的学习笔记

Matplotlib和numpy库一样,都是python的第三方库,numpy库侧重于数据的统计,计算,分析,详细看这里;
Matplotlib库则侧重于图形的绘制,将数据可视化,支持许多种图像的绘制,具体看这里。Matplotlib库支持的功能太多,一般情况只使用其中的pyplot子库就已足够,具体使用方法如下:

import Matplotlib.pyplot as plt

初识MatPlotlib.pyplot

上初中时,学的最简单的图形是什么?没错,坐标系,学习pyplot,第一步先学会画一个平面坐标系,利用plot函数可以做到这一点

plt.plot(x,y,format_string,**kwargs)

其中:

  • x,y:代表所绘制的数据的x,y轴,可以为列表或数组
  • format_string:控制曲线的格式字符串(可以省略)
  • kwargs:plot函数可以同时绘制多条曲线,只需在后面接上相同的参数(x,y,format_string)就行

format_string:可控制曲线的颜色,风格,标记字符,下图列出了常用的几个,不用记忆,需要的时候查一下表就行:
颜色字符
风格字符
标记字符
这里举一个plot的使用示例:

a=np.arrage(10)
plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-.')

这条程序绘制出的图形如下:
绘制的图形

使用技巧: 当绘制一条曲线时,可以省略x轴,图像将y轴数据(列表或数组)的下标当作x轴,
但是当绘制多条曲线时,不允许x轴的省略


加上注释

仅仅有图像是不够的,这个图象表示了什么,它的x,y轴代表什么含义?我们需要用注释来表明图像的意义,pyplot中提供了许多文本显示函数,常用的有以下几种:
文本显示函数
那这些函数怎么用呢?前三者用法相同,这里举一个例子

a=np.arange(0,5,0.5)
plt.plot(a,a**2,'r--')

plt.xlabel('xlabel',fontsize=15,color='green')
plt.ylabel('ylabel',fontsize=15,color='yellow')
plt.title('title $y=coss(2\pi x)$',fontsize=25)
plt.text(2,1,r'$\mu=100$',fontsize=15)

plt.grid(True)
plt.show()

其中,由两个$包括起来的部分是Latex格式语句,这里不赘述;
text函数中,前两个参数分别表示文本的横纵坐标

除这些外,表中还提到了annotate函数,使用方法如下:

plt.annotate(s,xy=arrow_crd,xytexte=text_crd,arrowprops=dict)

这些参数中:

  • arrow_crd:箭头的坐标
  • text_crd:注释的坐标
  • dict:表示一系列的属性
    举个实例:
    示例

让它更好懂!-----来点中文

pyplot默认情况下,不支持中文的标注,这可让英文渣大为头疼,接下来我们学习:如何让它支持中文注释。

reParams

想让pyplot支持中文注释,需要用到rcParams这个函数,它可以指定中文的字体,字体风格(正常,斜体),以及字体大小,使用的示例如下:

import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['fontsize']=20

以上代码中,SimHei代表黑体,在写过这条代码后,就可以在x,y轴等地方添加中文的注释,常用的字体有如下几种:
字体

此外,rcParams包含以下这些属性:
属性

fontproperties

在以上的方法中,使用rcParams可以设置全局的字体,但如果只想改变某个部分的字体呢?这时就需要用到fontproperties属性。
举例:

a=np.arange(0.0,5.0,0.02)
plt.xlabel('这里是横轴',fontproperties='SimHei',fontsize=20)
ply.ylabel('这里是纵轴',fontperoerties='SimHei',fontsize=20)
plt.plot(a,a**2)
plt.show

漂亮的排版----多区域绘图

常常,我们会想在一张纸上画许多个互不关联的图像,这些图像有的占用了左半边,有时由占用了一整行,pyplot中也可以做到这种效果----subplot2grid()
复杂的区域

subplot2grid函数,首先将画图的区域分成多个网格,利用对不同的网格选择,合并,便达到图中的效果,和Excel中的合并单元格是同样的原理。
例如:

plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=2)
  • 第一个参数:表示将绘图的区域分成3*3的网格(注意,网格下标从0开始)
  • 第二个参数:选中第二行,第一列的网格
  • 第三个参数:合并2个列
  • 第四个参数:同上类推
    达到以下的效果:
    效果图
    虽然这个函数能实现漂亮的排版,但使用起来有些麻烦,比如:已经有了plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=2)这条语句,若想选中其他区域(如0,0),仍需要再写一遍plt.subplot2grid((3,3),(0,0)),为了简化这个麻烦,可以使用另一个函数----GridSpec()

GridSpec函数是位于MatPlotlib中GridSpec子库中的一个函数,它的使用原理同上,但在划分网格后,不需要每次重新划分,直接选
中便可使用,举例如下:
举例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值