python内通用代码
1.pyplot绘图
1.1 pyplot绘制实时迭代图
代码如下示:
import matplotlib.pyplot as plt
ax = [] # 定义一个 x 轴的空列表用来接收动态的数据
ay = [] # 定义一个 y 轴的空列表用来接收动态的数据
plt.ion() # 开启一个画图的窗口
for i in range(100): # 遍历0-99的值
ax.append(i) # 添加 i 到 x 轴的数据中
ay.append(i**2) # 添加 i 的平方到 y 轴的数据中
plt.clf() # 清除之前画的图
plt.plot(ax,ay) # 画出当前 ax 列表和 ay 列表中的值的图形
plt.pause(0.1) # 暂停一秒
plt.ioff() # 关闭画图的窗口
效果如下:
1.2 plot 绘制带图例的多曲线图
plot可以绘制多条曲线,其需要设置的条件众多。
代码示例:
from matplotlib import pyplot as plt
import pylab as plot
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(len(loss))
plt.figure(figsize=(20,12)) #图幅大小与坐标轴刻度尺寸相关
ax = plt.subplot(111)
plt.xticks(fontsize=20) #设置坐标轴刻度字体大小
plt.yticks(fontsize=20)
plt.xlabel('epochs',fontsize=25) #设置坐标轴标签 及其字体大小
plt.ylabel('loss_value',fontsize=25)
plt.title('Training and validation loss',fontsize=30)
plt.plot(epochs, loss,label='Training') #绘制曲线1
plt.plot(epochs, val_loss,label='Validation') #绘制曲线2
params = {'legend.fontsize': 20,
'legend.handlelength': 4} #设置图例字体大小,图例长度
plot.rcParams.update(params) #应用图例参数
plt.legend(loc='upper left') #绘制图例,注明位置
plt.grid(True) #是否要显示网格线
plt.show()
效果图如下:
参考链接:https://blog.csdn.net/Mezikov/article/details/107441810
1.2 plt的交互模式
plt.ion()
在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图。
这是因为python可视化库matplotlib的显示模式默认为阻塞(block)模式。
什么是阻塞模式那?
我的理解就是在plt.show()之后,程序会暂停到那儿,并不会继续执行下去。如果需要继续执行程序,就要关闭图片。
那如何展示动态图或多个窗口呢?
这就要使用plt.ion()这个函数,使matplotlib的显示模式转换为交互(interactive)模式。
即使在脚本中遇到plt.show(),代码还是会继续执行。
在交互模式下:
plt.plot(x)或plt.imshow(x)是直接出图像,不需要plt.show()
如果在脚本中使用ion()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。
要想防止这种情况,需要在plt.show()之前加上ioff()命令。
即 ion() 和 ioff() 是配套的命令
在阻塞模式下:
打开一个窗口以后必须关掉才能打开下一个新的窗口。这种情况下,默认是不能像Matlab一样同时开很多窗口进行对比的。
plt.plot(x)或plt.imshow(x)是直接出图像,需要plt.show()后才能显示图像
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人