python读取文本绘制动图

10 篇文章 3 订阅

函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下:

a.fig 绘制动图的画布名称

b.func自定义动画函数,即下边程序定义的函数update

c.frames动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数update(n)的形参“n”

d.init_func自定义开始帧,即传入刚定义的函数init,初始化函数

e.interval更新频率,以ms计

f.blit选择更新所有点,还是仅更新产生变化的点。应选择True,但mac用户请选择False,否则无法显。

文本格式

文件为lammps运行输出的lammps.log文本。

Step Temp v_strain Pxx Pyy Pzz Lx Ly Lz E_pair E_bond E_angle E_dihed 
       0    198.98037 -1.1954791e-15    -307.7818   -332.44711   -450.92776    29.717906    29.717906    29.717906   -1661.3271    1.4567761    22.105031    259.83474 
     100    113.99645        0.001     802.0582   -371.05483    338.07158    29.747624    29.593368    29.549455   -1621.3122    113.57141    118.95821     342.1082 
     200    135.44321        0.002   -1350.8734   -529.83791   -1548.0938    29.777342     29.57901    29.431842    -1618.681    104.37541     136.1066    356.68807 
     300     137.4845        0.003   -1994.3502    -1576.221   -1005.0324     29.80706    29.693454    29.388996    -1599.549    143.14471     151.4005    365.76513 
     400    160.21331        0.004   -1317.2065   -882.91957   -58.438226    29.836778    29.818732    29.464864   -1595.4208    134.25187    153.84003    384.97577 
     500    168.83993        0.005   -110.57265    1153.8304   -852.70107    29.866496    29.851579    29.539056     -1599.54     162.3543    173.29173    391.07681 
     600    179.75576        0.006    63.832348   -45.553715    44.168081    29.896214    29.899106    29.559751   -1588.6715    162.10286    188.29565    395.54282 
     700    180.48954        0.007   -329.84436   -739.28704   -267.62466    29.925932    29.863819    29.564925   -1582.2551    173.98812    193.51452    413.32918 
     800    189.82243        0.008   -2354.5175   -284.56223   -873.53758     29.95565    29.829917     29.63692   -1576.0951    163.13675    195.18425    421.38248 
     900    184.54562        0.009   -1047.5093    539.11457   -83.803919    29.985368    29.802764     29.70496   -1581.0363    179.99546    210.62572    434.72882 
    1000    199.48628         0.01    801.32274    583.71966    816.51773    30.015085    29.683832    29.732822   -1575.8742     182.5266    198.89386    408.20532 
    ......

代码实现

提取文本的前两列,绘制温度-步长曲线。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams
from matplotlib.animation import FuncAnimation

config = {"font.family":'Times New Roman'}# 设置新罗马字体
rcParams.update(config) #更新配置

df=pd.read_table(r'D:\lammps\PE(COMPASS)\log.lammps',sep='\s+',skiprows=1925,nrows=2001)#读取txt文件,用任意空格分隔。
data=np.array(df)#将df表格转换为np矩阵

x_data=data[:,0] #读取第一列
y_data=data[:,1] #读取第二列

fig=plt.figure()
plt.xlabel('Step')
plt.ylabel('Temp(K)')

x,y=[],[]

frames=range(0,2000,1)
print(frames)
                   
def update(n): #定义更新函数
   x.append(x_data[n])  # 添加X轴坐标
   y.append(y_data[n])  
   plt.plot(x,y,'r')
    
ani = FuncAnimation(fig, update, frames, interval=1, blit=False)  #使用fig,按更新函数进行更新,依次传入的参数为frames(0-2000的整数),相邻帧间隔1ms,更新所有点。
ani.save('ming.gif') #保存到当前文件夹

plt.show()

输出的gif

因为2000帧实在是太大了,所只截取了部分输出。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的青蛙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值