【Python数据处理】导入txt文本文件并绘图

有一个.txt文本数据如下:

Data
%%%1351
x        y
1E-02    2.1E-02
2.5E-01    3.0E-1
3.55E+00   4.2E+00
…(后面的数据省略)

现在要绘制有关x-y的数据图像。

1. 加载指定行数据


def loadData(flieName):
    '''
    从.txt文件中读取数据
    可选择读取所有数据也可选择读取选定行数据
    '''
    lnum=0
    x=[]  #创建空表存放x数据
    y=[]  #创建空表存放y数据
    with open(flieName, 'r') as f: #以只读形式打开某.txt文件
        for line in f:
            lnum += 1
            if(lnum>=4):  #从第四行开始添加数据
                line=line.strip('\n') #去掉换行符
                line=line.split('\t') #分割掉两列数据之间的制表符             
                x.append(line[0])
                y.append(line[1])
    #NOTE:此时所得到的x列表中的数据类型是str类型,因此需要进行转换,转换为float类型
    x=np.array(x)  
    x=x.astype(np.float).tolist()
    
    y=np.array(y)
    y=y.astype(np.float).tolist()     
    
    return (x,y)

2. 绘图

def plotdata(x,y):
    fig = plt.figure(figsize=(10, 10))  # 创建绘图窗口,并设置窗口大小
    ax = fig.add_subplot(1,1,1)
    ax.plot(x, y, 'red', label='unknown')  # 画x-y的值,颜色红
    ax.legend(loc='upper left')  # 绘制图例,plot()中的label值
    ax.set_xlabel('x-axis')  # 设置X轴名称
    ax.set_ylabel('y-axis')  # 设置Y轴名称
   
    plt.show()  # 显示绘制的图

还有一种使用pylab库绘制图的方法如下,参考该博客,其效果见该博客:参考博客

## 绘制该文件中的数据
## 需要引入pylab库,里面用到的函数和MATLAB里的非常类似
def plotData(x, y):
    length = len(y)
            
    pylab.figure(1)
 
    pylab.plot(x, y, 'rx')
    pylab.xlabel('x')
    pylab.ylabel('y')
 
    pylab.show()#让绘制的图像在屏幕上显示出来

友情提醒

在加载数据之后,如若要对数据进行其他操作,请一定要确保数据格式已经转换为float或int等这些类型,否则后续对数据求最值等操作都会出现错误。因此在返回x y数组之后,最好确认一下数组中各个元素的类型print(type(x[0]))


参考资料:
python 读取、写入txt文本内容
matplotlib详解

你可能感兴趣的:(#,Python数据处理及绘图,python)