半个小时完成matplotlib入门(一)基础知识

matplotlib是Python的一个绘图包,matplotlib.pyplot中有一系列的函数可以进行绘图已经对图形进行各种处理,其中封装了很多画图的函数。这个包与MATLAB有相似之处。

导入包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

从简单开始

拿到这个包我们先从简单的做起,我们先画个正弦曲线好了。相信用过MATLAB的对plot这个函数应该并不陌生。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,50)
y=np.sin(x)
plt.plot(x,y)
plt.show()

在这里插入图片描述
但是其实plot也可以直接用,比如

plt.plot([1,2,3,4],[0,1,2,3])

接下来我们可以对我们画的正弦图像进行一些处理

改变图像的颜色

在matplotlib中,控制颜色的字符与颜色对应表如下:

字符颜色
‘b’blue
‘g’green
‘r’red
‘c’cyan(青色)
‘m’magenta(品红)
‘y’yellow
‘k’black
‘w’white

在使用中,放在plot函数中作为参数,就可以得到指定颜色的图像。

plt.plot(x,y,'c')

在这里插入图片描述

改变线条透明度

plot函数中的参数alpha用来控制线条透明度

plt.plot(x,x,alpha=0.3,color='b')

改变绘图类型

字符类型
‘.’
‘,’像素点
‘o’小圈圈
‘v’下三角点
‘^’上三角点
‘<’左三角点
‘>’右三角点
‘1’下三叉点
‘2’上三叉点
‘3’左三叉点
‘4’右三叉点
‘s’正方点
‘p’五角点
‘*’星形点
‘h’六角形点1
‘H’六角形点2
‘+’加号点
‘x’x号点
‘D’实心菱形点
‘d’瘦菱形点
‘_’横线点

改变类型和改变颜色可以一起使用,其用法与改变颜色相同,例如我们想把正弦图像改变成蓝色的圆点图。应该这样写

plt.plot(x,y,'bo')

在这里插入图片描述

改变线型

characterdescription
‘-’实线
‘–’虚线
‘-.’虚点线
‘:’点线

例如想吧正弦图形画成虚点线形式。

plt.plot(x,y,'-.')

在这里插入图片描述

指定坐标范围

有时候会出现我们画的点过于靠近坐标轴导致数据处理受到影响,我们就需要指定一下图像的坐标范围

axis方法
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,30)
y=np.sin(x)
plt.plot(x,y,'-.')
plt.axis([-1,8,-2,2])#在此处指定x轴的范围,y轴的范围
plt.show()

在这里插入图片描述

xlim和ylim方法

这种方法也是用来设置坐标范围的。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,50)
y=np.sin(x)
a=plt.subplot(111)
a.plot(x,y)
a.set_xlim(-2,8)
a.set_ylim(-2,2)
plt.show()

画多条图像

既然有了正弦图像,那么怎么能少了余弦呢!

plt.plot(x,np.sin(x),'b-.',
         x,np.cos(x),'c+')

在这里插入图片描述

子图

有时候我们将多条图像都放在一个figure上似乎就会显得很乱套,这时候我们就需要用到子图。使用subplot可以再一幅图中生成多个子图。其构造函数如下:

plt.subplot(numrows, numcols, fignum)

如何理解这三个参数:
numrows代表整个图像被分成几行,numcols代表整个图像被生成几列,所以整个图像可以有的子图数量就是numrows*numcols;fignum就是子图的标号,比如我们的函数这么传参:

plt.subplot(3,3,2)

可以得知整个图被分成3*3=9个子区域,fignum=2,也就是在第二个子区域,如图所示
在这里插入图片描述
因此我们如果想吧sin和cos图像分开,我们就这样式的:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,30)
plt.subplot(2,1,1)
plt.plot(x,np.sin(x),'b-.')
plt.subplot(2,1,2)
plt.plot(x,np.cos(x),'c:')
plt.axis([0,8,-1,1])
plt.show()

在这里插入图片描述

给图像填加标题和坐标轴名

小学老师就告诉过我们画图如果不加标题和坐标轴名是没分的。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,30)
plt.subplot(2,1,1)
plt.plot(x,np.sin(x),'b-.')
plt.title('y=sinx',fontsize=20)#字号为20
plt.xlabel('X',fontsize=18,color='r')
plt.ylabel('Y',fontsize=18,rotation=60)
plt.axis([0,8,-1,1])
plt.show()

参数解释

  • fontsize用来设置字号
  • color设置标签颜色
  • rotation设置标签旋转角度

在这里插入图片描述

xy轴坐标刻度

plt.xticks()plt.yticks()方法

  • 需指定刻度值和刻度名称 plt.xticks([刻度列表],[名称列表])
  • 支持fontsize、rotation、color等参数设置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,30)
plt.subplot(2,1,1)
plt.plot(x,np.sin(x),'b-.')
plt.title('y=sinx',fontsize=20)#字号为20
plt.xlabel('X',fontsize=18)
plt.ylabel('Y',fontsize=18,rotation=90)
plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2],['0','π/2','π','3π/2','2π'])
plt.show()

在这里插入图片描述

填加图例

legend方法
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.arange(0,20)
plt.plot(x,x,
         x,2*x,
         x,3*x)
plt.legend(['slow','normal','fast'])
plt.show()

在这里插入图片描述
也可

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x=np.arange(0,20)
plt.plot(x,x,label='slow')
plt.plot(x,2*x,label='normal')
plt.plot(x,3*x,label='fast')
plt.legend()
plt.show()

lengend函数中有一个loc参数,loc参数用来控制图例所在的位置。
loc参数可以是2元素的元组,表示图例左下角的坐标

  • [0,0] 左下
  • [0,1] 左上
  • [1,0] 右下
  • [1,1] 右上
    使用样例:
plt.legend(loc=(0,1))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值