首先如何在python中安装matplotlib库呢?
在cmd中使用命令
pip install matplotlib
import matplotlib.pyplot as plt
#加载matplotlib库的pyplot模块并起别名叫plt
import numpy as np
#再导入numpy库并起别名叫做np
x=np.linspace(-2,2,50)
#返回以起点为-2终点为2内的50个均匀间隔样本作为方程y的x数据
y=2*x+1
#方程y,2x+1
plt.plot(x,y)
#以x,y绘制方程图
plt.show()
#展示绘制的方程
'''
运行结果:
如任务目标所示
'''
代码较简单就说一下linspace函数
numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None,axis = 0 )
start参数(必选):序列的起始值。
end参数(必选):序列的终止值,在没有设置endpoint参数的时候,是不包括终止点的,除非将endpoint参数设置为False。
num参数(可选):要生成start-end之间的样本数,默认为50。
endpoint参数(可选):如果为True,就不会包括start-end之间的最后一个样本数,也就是end,反之。默认值为True。
retstep(可选):如果是True,则返回样本之间的间隔,默认是False
dydpe(可选):输出数组的类型,如果没选,默认自动根据其他参数推断数据类型。
axis(可选):如当成三维数组的类型,就可使用该参数,axis=0是对维度为0进行操作,axis=1是对维度为1进行操作,axis=2是对维度为2进行操作,默认为0,注意:当不是多维数组使用该参数会报错。
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
这是官方定义的格式,我们就掌握最核心的即可
参数 | 描述 |
---|---|
[x](可选参数) | 方程y的数据 |
y(必选参数) | 方程y |
[fmt](可选参数) | 格式化字符串,定义图形的基本样式:颜色,点形,线形 |
Kwargs | 代表以不定长的关键字参数设置绘制线的其他属性,比如线标签(用于自动图例),线宽,抗锯齿,标记面颜色 |
fmt = ‘[marker][line][color]’
第一个是标记物可以是如下的内容
字符 | 描述 |
---|---|
‘.’ | 点标记 |
‘,’ | 像素标记 |
‘o’ | 圆圈标记 |
‘v’ | 倒三角标记 |
‘^’ | 正三角标记 |
‘<’ | 左三角标记 |
‘>’ | 右三角标记 |
‘1’ | tri_down标记 |
‘2’ | tri_up标记 |
‘3’ | tri_left标记 |
‘4’ | tri_right标记 |
‘s’ | 方形标记 |
‘p’ | 五边形标记 |
‘*’ | 星标 |
‘h’ | 六角形标记 |
‘H’ | 六角标记 |
‘+’ | 加号 |
‘x’ | X标记 |
‘D’ | 钻石笔 |
‘d’ | thin_diamond标记 |
‘|’ | vline标记 |
‘_’ | hline标记 |
第二个是线条属性
线性
线型 | 描述 |
---|---|
'-‘或者’solid’ | 实线 |
'–‘或者’dashed’ | 虚线 |
‘-.’ 或者’dashdot’ | 点划线 |
':‘或者’dotted’ | 虚线 |
标记物
第三个是颜色
字符 | 颜色 |
---|---|
‘b’ | blue |
‘g’ | green |
‘r’ | red |
‘c’ | cyan |
‘m’ | magenta |
‘y’ | yellow |
‘k’ | black |
‘w’ | white |
**kwargs较多就不写了。
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
#返回以起点为-3终点为3内的50个均匀间隔样本作为方程y1,y2的x数据
y1=2*x+1
y2=x**2
plt.figure(num=2,figsize=(8,5))
#利用figure绘制图像,并且窗口的大小为8,5,窗口标题为2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--")
#将y2,跟y1都画在一个图形标题为2的图上,并且y1这条线是红色,线宽为1,线的属性使用的是'--'
plt.show()
#展示绘制的图
'''
运行结果:
如任务目标所示
'''
官方定义的figure函数
matplotlib.pyplot.figure(num = None,figsize = None,dpi = None,facecolor = None,edgecolor = None,frameon = True,FigureClass = <class'matplotlib.figure.Figure'>,clear = False,** kwargs )
主要参数描述:
参数 | 描述 |
---|---|
num(可选参数) | 如果未选择,每次创建一个新图形,都会将图形编号增1。如果提供了num,并且num已经是之前用过的了,则会激活并再次引用,如果图不存在,则创建。 |
figsize(可选参数) | 设置宽度,高度,单位是英寸。如果未选择,则默认使用(6.4,4.8) |
dqi(可选参数) | 设置图的分辨率,如果未选择则默认为100.0100 |
facecolor(可选参数) | 背景颜色。如果未选择默认使用白色 |
edgecolor(可选参数) | 边框颜色,如果未选择默认使用白色 |
frameon(可选参数) | 是否绘制图形边框,如果未选择默认使用True |
clear (可选参数) | 如果为True并且该图已经存在,则将其清楚,如果未选择默认使用False |
更改坐标的名字
任务目标:
代码示例:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#这两行可使画出来的图形中的中文显示出来
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--",label="{}".format(y1))
plt.xlim((-1,2))
#设置x轴的极限为-1到2
plt.ylim((-2,3))
#设置y轴的极限为-2到3
plt.xlabel(r'x轴')
#设置x轴的标签
plt.ylabel(r'y轴')
#设置y轴的标签
new_ticks=np.linspace(-1,2,5)
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
#将y轴的[-2,-1.8,-1,1.22,3]处都换成....省略
plt.show()
设置当前x轴(横轴)的极限
如果不设置,就可通过拉动窗口使x轴可见极限增大或缩小
设置当前y轴(纵轴)的极限
如果不设置,就可通过拉动窗口使x轴可见极限增大或缩小
获取或设置x轴的当前刻度位置和标签。
matplotlib.pyplot.xticks(ticks = None,labels = None,** kwargs )
参数 | 描述 |
---|---|
tick(必选参数) | 放置刻度的位置列表,可以使用空列表禁用调 |
labels | 在给定位置放置的显式标签的列表。 |
** kwargs | 用于控制标签的外观 |
在图形上获取所有的轴
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--")
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel("x轴")
plt.ylabel("y轴")
new_ticks=np.linspace(-1,2,5)
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
ax=plt.gca()
#获取两个横轴两个竖轴
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#获取右边与顶部的轴设置右边框和头部边框给颜色为空
ax.xaxis.set_ticks_position('bottom')
#将x轴的位置设置在底部
ax.yaxis.set_ticks_position('left')
#将y轴的位置设置在右边
ax.spines['bottom'].set_position(('data',0))#outward,axes
#获取底部的轴移动轴的位置到交叉轴的指定坐标为0
ax.spines['left'].set_position(('data',0))
#获取左边的轴移动轴的位置到交叉轴地指定位置为0
plt.show()