matplotlib之基本图像的绘制

安装matplotlib库

首先如何在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函数

代码较简单就说一下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函数

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()函数

官方定义的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()

xlim()函数

设置当前x轴(横轴)的极限
如果不设置,就可通过拉动窗口使x轴可见极限增大或缩小

ylim()函数

设置当前y轴(纵轴)的极限
如果不设置,就可通过拉动窗口使x轴可见极限增大或缩小

xticks()函数

获取或设置x轴的当前刻度位置和标签。

matplotlib.pyplot.xticks(ticks = None,labels = None** kwargs )
参数 描述
tick(必选参数) 放置刻度的位置列表,可以使用空列表禁用调
labels 在给定位置放置的显式标签的列表。
** kwargs 用于控制标签的外观

gca()函数

在图形上获取所有的轴

任务目标:
在这里插入图片描述
代码示例

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()

发布了38 篇原创文章 · 获赞 128 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lujiangyang123/article/details/103742929