半个小时完成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')

在这里插入图片描述

改变线型

character description
‘-’ 实线
‘–’ 虚线
‘-.’ 虚点线
‘:’ 点线

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

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))
发布了35 篇原创文章 · 获赞 74 · 访问量 6777

猜你喜欢

转载自blog.csdn.net/weixin_45939019/article/details/104209052