文章目录

  • 安装matplotlib库
  • 在坐标系中绘制简单的一元一次方程
  • linspace函数
  • plot函数
  • figure()函数
  • xlim()函数
  • ylim()函数
  • xticks()函数
  • gca()函数


安装matplotlib库

首先如何在python中安装matplotlib库呢?
在cmd中使用命令

pip install matplotlib

在坐标系中绘制简单的一元一次方程

任务目标:

用python计算一次函数的解析式 python绘制一次函数_可选参数


代码实例:

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较多就不写了。

任务目标:

用python计算一次函数的解析式 python绘制一次函数_可选参数_02

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

更改坐标的名字
任务目标:

用python计算一次函数的解析式 python绘制一次函数_matplotlib_03

代码示例:

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

在图形上获取所有的轴

任务目标:

用python计算一次函数的解析式 python绘制一次函数_可选参数_04


代码示例

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