你看你也懂,matplotlib基础版本单飞模式

花了二个多礼拜,终于上完了这章课程,对于matplotlib的绘图,确实太多了,我也要一直翻阅官方文档来对应一个函数的功能,这确实太麻烦了,我这个系列有二个,所以我打算搞个博客,帮助一下我和所有刚学的人,这是基础版本,进阶的版本我也有写在我博客里面,欢迎查阅!

函数库:

使用子库:pyplot

from matplotlib import pyplot as plt
# 本博客涉及其他函数库如下
import matplotlib
import numpy as np

显示中文

matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']

主要绘图区域函数

函数 描述
plt.figure(figsize=[x,j], facecolor=None) 绘制区域大小
plt.subplot(nrows, ncols, plot_number) 在全局绘图区域创建一个子绘图区域
plt.axes(rect, axisbg=‘w’) 创建一个坐标系风格的子绘图区域
plt.subplots_adjust() 调整子绘图区域的布局

参数rect = [left, bottom, width, height] 四个变量的范围都是[0 - 1],表示坐标系与全局绘图区域的比例关系

plt基础图表函数

函数 描述
plt.polt(x,y,‘k’,label,color,linewidth) 根据x,y数组绘制直线或者曲线
plt.boxplot(data, notch, position) 绘制一个箱线图
plt.bar(left, height, width, bottom) 绘制一个条形图
plt.barh(bottom, width, height, left) 绘制一个横向条形图
plt.pie(data, labels) 绘制一个饼图
plt.hist(data,x,bins) 绘制一个直方图
plt.scatter(data, x, y) 绘制一个散点图
plt.polar(theta, r) 绘制一个极坐标图

polt函数的k类参数
在这里插入图片描述

plt中的基本函数

函数 描述
plt.show() 显示这个图表
plt.axis() 获得设置轴属性的快捷方式
plt.xlim(xmin,xmax) 设置x轴的取值范围
plt.ylim(ymin,ymax) 设置y轴的取值范围
plt.xscale() 设置x轴缩放
plt.yscale() 设置y轴缩放
plt.title() 设置标题
plt.xticks(loc(列序号), label(标签), rotation(角度)) 设置当前x轴的刻度位置的标签和值和旋转角度
plt.yticks(loc(列序号), label(标签), rotation(角度)) 设置当前y轴的刻度位置的标签和值和旋转角度
plt.text(x,y,s,fontdic,withdash) 为坐标图轴添加注释
plt.grid(on/off) 打开或者关闭坐标网络
plt.legend() 为当前绘图区域防止图注
plt.annotate(note, xy,xytext,xycoords,textcoords,arrowprops) 用箭头在指定数据点创建一个注释或者一个文本

plt中的区域填充函数

函数 描述
fill(x,y,c,color) 填充多边形
fill_between(x,y1,y2,where,color) 填充二条曲线围成的多边形
fill_betweenx(y,x1,x2,where,hold) 填充二条水平线之间的区域

实例一: 简单的绘制曲线图

x = np.linspace(0, 6, 100)  # 把 0 - 6   100等分
y = np.cos(2 * np.pi * x) * np.exp(-x) + 0.8  #  构造函数
plt.plot(x, y ,label='cos(2*Pi*x)*(1/e)^x + 0.8',color='red', linewidth=3)
plt.title('plot图')  # 标题
plt.xlabel('x')   # x轴标题
plt.ylabel('y')  # y轴标题
plt.legend()  #  设置图注
plt.show()     # 显示这个图标

在这里插入图片描述

实例二: 使用内置的数学公式

plt.plot([1, 2, 4],[1, 2, 3],label='x:y')
plt.title('简单的x对应y关系图')
plt.xlabel('时间(s)')
plt.ylabel('范围(m)')
x_lable =[r'$\pi/3$', r'$2\pi/3$', r'$\pi$',r'$4\pi/3$',r'$5\pi/3$']
plt.xticks([i for i in range(1,6)],x_lable)  # 定义x轴标签
plt.legend() # 增加图注
plt.ylim(0,5) # y坐标的范围
plt.show()

在这里插入图片描述

关于数学公式的讲解: 使用$$可以使用内置的latex引擎,然后\pi是转义字符,等于Π,前面的r是绝对引用

实例三: 使用区域填充函数

x = np.linspace(0, 10, 1000)
y = np.cos(2 * np.pi * x) * np.exp(-x) + 0.8
plt.plot(x, y, label='$exp-decay$',linewidth=3,color='red')
ix = (x > 0.4) & (x < 2.4)  # 填充的x范围
plt.fill_between(x, 0,y,where=ix,color='pink')  # 填充
plt.legend()
plt.text(1.5,0.2,r'$\int_a^bf(x)\mathrm{d}x$',ha='center')  # 添加图表注释
plt.xlim(0,10) #x范围
plt.ylim(0,2)  #y范围
plt.show()

在这里插入图片描述

实例四: 绘制笛卡尔心形图

plt.figure(figsize=[10,4])
plt.subplot(1, 2, 1)
t = np.linspace(0, 2 * np.pi, 1000)
x = np.sin(t)
y = np.cos(t) + np.power(x, 2.0/3)
plt.plot(x, y, color='red',linewidth=3)
plt.plot(-x, y, color='red', linewidth=3)
plt.title('笛卡尔心形图')
plt.xlim(-2,2)  # x
plt.ylim(-2,2)  # y
plt.subplot(1, 2, 2, polar=True) # 固定区域
rho = 5 * (1 - np.sin(t))
plt.polar(t, rho, color='red') # 极坐标
plt.title('笛卡尔心形图')
plt.show()

在这里插入图片描述

实例五: 综合绘制

def Draw(): # 绘制函数
    plt.plot(x, y, label='$exp-seruf$',color='red',linewidth=3)
    plt.plot(x, z,'b--', label='$cos(x^2)$',color='green',linewidth=1)
    plt.xlabel('时间(s)')
    plt.ylabel('幅度(mV)')
    plt.title('阻尼衰减曲线')
    # 增加箭头指向 具体使用参考官方文档
    plt.annotate('$\cos(2\pi t)\exp(-t)$', xy=(1, np.cos(2*np.pi)*np.exp(-1)+0.8),\
                xytext=(1, 1.4), fontsize=14, arrowprops=dict(arrowstyle='->',connectionstyle='arc3, rad=.1'))
    
def xy_lim():  # 坐标的设置
    plt.xlim(0, 6)
    plt.ylim(0, 1.8)
    plt.xticks([i for i in range(1,7)], [r'$\pi/3$', r'$2\pi/3$', r'$\pi$',r'$4\pi/3$',r'$5\pi/3$',r'$2\pi$'])

def fill():  #  图像的填充
    ix = (x > 1) & (x < 3)
    plt.fill_between(x,0,y,where=ix,color='pink',alpha=0.5)
    # 增加文本说明
    plt.text(1.5,0.2,r'$\int_a^bf(x)\mathrm{d}x$',ha='center')
#  构建三个变量构成二条曲线
x = np.linspace(0.0, 6.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x) + 0.8
z = 0.5 * np.cos(x ** 2) + 0.8
# 绘制区域
plt.figure(figsize=[8, 6], facecolor='white')
Draw()  # 绘制图像
fill()  # 对图形的填充
xy_lim() # 对xy轴下标设置
plt.legend()  # 增加图注
plt.savefig('阻尼衰减曲线.jpg')  # 图像保存
plt.show()

在这里插入图片描述

刚收到信息,五月七号以后高校准备开学,不知道这日子到底什么时候结束,但愿春暖花开之日,皆是你我小有成就之日。

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

猜你喜欢

转载自blog.csdn.net/qq_45906219/article/details/105542144