python批量处理TXT之后的数据进行成图

紧接着上一篇,批量处理完的txt文本后的数据,填充到Excel表中,下面是处理步骤

  1. 读取Excel表格
  2. 把数据转换成numpy的矩阵
  3. 提取需要的数据填充到准备好的矩阵中
  4. 循环显示图片,总共有205+140张图片
  5. 第一行图是一个板卡的某个电容在28个通道之间测试的值发现2做激励通道时候值比其他通道要大0.001左右。
  6. 第二行图真实想法是横坐标是21-1430fF的真是电容值,纵坐标是测量值,右边的图是去除最大电容值后情况
  7. 后面的图是一个板卡内的28通道的10个电容数据进行线性拟合,得到28个斜率和偏移量
  8. 发现同一个板卡的斜率相差不大,不同板卡之间的斜率相差200以上,偏移量在-21附近

 

# -*- coding: utf-8 -*-
"""
Created on Sat Jan 11 16:54:52 2020

@author: Tsinghua

下面是成图算法
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#from scipy.optimize import curve_fit


excel = 'D:/log/data_process.xlsx'
save_path='D:/log/picture/'
df = pd.read_excel(excel)

#a=['21','29','51','81','150','297','394','583','708','1057','1430']
d=np.array([22,29,51,81,150,297,394,583,708,1057,1430])
b=list(range(1,12))
c=list(range(1,29))

#da = pd.DataFrame(columns=a,index=b)
#da = pd.DataFrame(columns=b,index=a)

for j in range(0,5):
    ss = np.zeros([28,0])
#取出Excel中某些行
    for i in range(0,11):
        #dd = pd.DataFrame(df.ix[4+i,2:30],dtype=np.float)
        dd = pd.DataFrame(df.ix[4+j*11+i,2:30],dtype=np.float)
    #    ds = dd.values
        ss = np.append(ss,dd.values,1)
    
    #ss = np.transpose(ss)#矩阵转置
    
    

#    每个电容的28通道图
    for i in range(0,11):
        plt.plot(c,ss[:,i])
        plt.savefig(save_path+'板卡'+str(j)+'电容'+str(i)+'.png')
#        plt.show()
        plt.clf()
        

#    每个通道的散点图前面10个点

    for i in range(0,28):
        plt.plot(d[:],ss[i,:])
        plt.savefig(save_path+'板卡'+str(j)+'通道'+str(i)+'.png')
#       plt.show()
        plt.clf()
    
    for i in range(0,28):
        plt.plot(d[:9],ss[i,:9])
        plt.savefig(save_path+'无'+str(j)+'通道'+str(i)+'.png')
#       plt.show()
        plt.clf()    
    
    pp = np.array([])
    pp1 = np.zeros(shape=(28,1))
    pp2 = np.zeros(shape=(28,1))
    
    for i in range(0,28):
        ploy = np.polyfit(ss[i,0:10],d[0:10],deg=1)#只拟合前面10个电容,1430fF电容不参与拟合
        pp = np.append(pp,ploy,0)#得到拟合方程的两个参数,前面是斜率,后面的偏移量
#       plt.plot(e,np.polyval(ploy,e))
#       plt.plot(list(range(0,28)),pp)
        
    for i in range(0,28):
        pp1[i] = pp[2*i]    #这个是斜率
        pp2[i] = pp[2*i+1]  #偏移量
    
    
    plt.plot(list(range(0,28)),pp1)     #斜率成图
    plt.savefig(save_path+'EMB'+str(j)+'斜率'+'.jpg')
#    plt.show()
    plt.clf()
    
    
    plt.plot(list(range(0,28)),pp2)     #偏移量成图
    plt.savefig(save_path+'EMB'+str(j)+'偏移'+'.jpg')
#    plt.show()
    plt.clf()
#保存的时候遇到过保存空白图像的问题,
#是因为将plt.savefig('D:/log/picture/i+5.png')放到了plt.show()之后,
#只要先保存在显示就可以正常保存了。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python批量处理txt文件可以采取以下几种方法: 1. 使用os库创建txt文件:通过使用os库的相关函数,可以遍历指定文件夹下的所有文件,并根据需要创建txt文件。[1] 2. 使用Python读取txt文件进行处理:可以使用open函数打开txt文件,然后逐行读取文件内容进行相应的处理操作,例如提取关键信息、修改内容等。 3. 使用Python批量修改txt文件名:通过使用os库的相关函数,可以批量修改txt文件文件名,例如添加前缀、后缀或者根据文件内容进行命名。 4. 使用Python批量删除txt文件的第一行:可以使用open函数打开txt文件,逐行读取文件内容,并删除第一行或者指定行数的内容,然后将修改后的内容写回到原文件中。 通过以上方法的组合,你可以根据具体需求来批量处理txt文件。例如,你可以使用os库创建一组新的txt文件,然后使用open函数逐个读取原始txt文件内容,并按照需要进行处理后写入新的txt文件中。同时,你还可以使用os库的相关函数批量修改、删除、提取指定文件夹下的txt文件。 请根据具体情况选择适合的方法来处理txt文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python批量处理文件的方法总结(包括folder、txt、xml、excel)](https://blog.csdn.net/qq_44701243/article/details/120038287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值