matlab数据无量纲化_phthon 处理文本数据以及调用画图包进行快捷画图

python的编程工具Thorny的下载及使用

  • 进入网站http://gis4g.pku.edu.cn/download/thonny-3-2-6-macos/下载软件然后安装

c4c9f3690f1b511cb532308b6c01042e.png
  • Thorny中安装第三方安装包:点击工具---管理包然后搜索需要的第三方插件,点击下载安装。

3d6bf659ed7f3ec9f5598c3a028d3d5d.png

SciencePlots的介绍和安装

  • SciencePlots是一个依附于Matplotlib的扩展包,在这个扩张包中有许多可以直接调用预设好的绘图风格,包括Science,IEEE要求的绘图风格,详细信息可在网站https://github.com/garrettj403/SciencePlots中查看。
  • 在Thorny的管理包中先搜索matplotlib并安装,之后再搜索 SciencePlots,并安装。

使用方法

  • 部分数据样式如下,第1,3,5列为x轴数据,对应2,4,6列为y轴数据

e2acb8a366620f87473e128b44d21b4a.png
  • 根据数据进行绘图代码如下:
import matplotlib.pyplot as plt      #导入绘图库
d1, d2, d3, u1, u2, u3, temp = [], [], [], [], [], [], [] #设置数组
with open('v.txt', "r") as f:        #打开.txt格式文件,并且将文件作为f
    lines = f.readlines()            #将f中的每一行作为一个元素存储在数组lines中
    for line in lines:               #for循环,使line遍历lines中的每一个元素,
        temp = line.split()          #对字符串进行切片,没有指定参数,则以空格为分隔符,分为单独的元素并存储在数组temp中
        d1.append(float(temp[0]))    #将数组temp第0个元素添加到数组d1中
        u1.append(float(temp[1]))
        d2.append(float(temp[2]))
        u2.append(float(temp[3]))
        d3.append(float(temp[4]))
        u3.append(float(temp[5]))

with plt.style.context(['science', 'no-latex', 'ieee']):  #使用绘图库,指定绘图风格
    fig, ax = plt.subplots()                              #设置绘图窗口
    ax.plot(d1, u1, label = '100ppm k=5 v=0.01')          #设置绘图读取的数据,以及图例
    ax.plot(d2, u2, label = '100ppm k=10 v=0.01')
    ax.plot(d3, u3, label = '100ppm k=15 v=0.01')
    ax.legend(title = 'Order')                            #设置数据图的标题
    ax.set(xlabel = 'd')                                  #设置x轴名称
    ax.set(ylabel = 'u')                                  #设置y轴名称
    ax.set_xlim((0, 2.5))                                 #设置x轴刻度范围
#    ax.autoscale(tight=True)
    fig.savefig('fig1.png', dpi = 300)                    #保存并设置图片保存名称,格式以及分辨率
    fig.show()                                            #展示图片

0088874d951406575c532984a89db851.png

使用python对数据进行处理并绘制数据图

  • 以ICEO为例,运行完算例后使用smapleDict程序生成速度数据,并进行无量纲化:

$$ d=frac{sqrt{x^2+y^2}-R}{R} u^*=frac{sqrt{u^2+v^2}}{u_{ref}} R=0.00001,u_{ref}=4.68697E-9 $$

  • 使用python读取.txt文件,第1,2,3列分别为x,y,z轴坐标,第4,5,6列分别为x,y,z轴的速度分量,进行处理并绘图:

92a1095e0e0736dc657271e312fe31b2.png
import matplotlib.pyplot as plt                 #导入绘图库

filename = 'U.txt'      
x, y, d, ux, uy, u= [], [], [], [], [], []      #设置数组
with open(filename, 'r') as f:                  #打开文件,并且命名为f
    lines = f.readlines()                       #将f中的每一行作为一个元素存储在数组lines中
    i = 0                                       #计数
    for line in lines:                          #for循环,使line遍历lines中的每一个元素
        temp = line.split()                     #对字符串进行切片,没有指定参数,则以空格为分隔符,并以数组的形式存储在temp中
        x.append(float(temp[0]))                ##将数组temp第0个元素添加到数组x中
        y.append(float(temp[1]))
        ux.append(float(temp[3]))
        uy.append(float(temp[4]))
        d.append(((((x[i])**2 + y[i]**2)**0.5)-0.00001)/0.00001) #进行计算
        u.append(((ux[i]**2 + uy[i]**2)**0.5)/4.68697e-9)
        i = i + 1
with plt.style.context(['science', 'no-latex', 'ieee']):  #使用绘图库,指定绘图风格
    fig, ax = plt.subplots()                              #设置绘图窗口
    ax.plot(d, u, label = '$u^*$')          #设置绘图读取的数据,以及图例
    ax.legend(title = 'Order')                            #设置数据图的标题
    ax.set(xlabel = 'd')                                  #设置x轴名称
    ax.set(ylabel = '$u^*$')                                  #设置y轴名称
    ax.set_xlim((0, 2.5))                                 #设置x轴刻度范围
#   ax.autoscale(tight=True)
    fig.savefig('ICEO.png', dpi = 300)                    #保存并设置图片保存名称,格式以及分辨率
    fig.show()

7c2970359320285dad0abb6b396a1aae.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值