Andrew Moa Blog Site

PyCFF——一款基于Python的曲线拟合工具

最近工作中经常遇到需要通过散点数据拟合函数曲线的情况,比较典型的例子是通过换热器的压降拟合多孔介质参数,以及拟合流体介质的多项式密度。虽然相关的工作可以通过Excel、Origin等实现,但是操作繁琐而且支持的函数类型有限。这里使用Python编写了一个简单的工具包,通过numpy和scipy实现函数拟合功能,用PySide编写了用户界面,实现了从输入数据到输出拟合函数参数的功能,并且支持数据预测和自定义函数功能。

1. 软件简介

源码地址:PyCFF

1.1 用户界面

下面是软件的启动界面。软件界面通过PySide(Qt)实现。支持函数绘图功能,用户可以自定义绘图内容及输出保存图片。

c6219195050ac1b0866829f371239172.png

下面是软件的输入界面。输入数据通过表格的方式展示,用户通过指定列来选择要拟合函数的自变量(x)和因变量(y)。用户不仅可以在表格中手动输入数据,也可以通过Excel等表格软件粘贴输入,还可以通过粘贴替换列的方式快速输入大量数据。

1dbefea8b95c2677587b4f885c9df838.png

下面是软件的输出界面。软件预定义了一些常用函数,用户点击运算后在左侧表格中输出函数参数,并且在文本框中输出函数的完整表达式。用户可以自定义输出参数的精度和是否采用科学计数法,输出参数默认采用的是6位小数的科学计数法表示,满足大部分工程计算的需求。

98ecd6a60f59bed8a70596750a11fd4d.png

阅读时长1分钟
Andrew Moa

Tabby配置MSYS2

Tabby 是一款颜值很高的终端工具,最开始用它是为了替代本机终端,用着用着后来发现越来越多的优点。首先它内置支持SSH连接方式,同时支持SFTP传输文件,设置操作简单,避免了在Windows终端中的繁琐设置。其次,可以用来替代MSYS2、Cygwin原有的Mintty界面,实现不同终端之间无缝切换。关于Tabby终端中如何调用MSYS2,下面记录一下配置方法:

  1. 首先在Tabby设置中克隆一个CMD配置:

    d3078fcb85ac34f312416cd671b2cb58.png

  2. 在名称中填写要调用的MSYS2工具链:

    462779a7512334158043be9cbd1a265c.png

    注意,图标这里不能直接指派ico文件,Tabby无法识别,必须将ico图标转换成svg格式。这种ico2svg在线转换资源很多,网上一搜一大把:

    转换完成后下载svg文件,用文本工具打开将svg源码复制粘贴到上面的图标栏里,Tabby就可以正常显示图标了。

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">  <image id="image0" width="16" height="16" x="0" y="0"
        xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
    AAB1MAAA6mAAADqYAAAXcJy6UTwAAADPUExURb5kPsBpRdWbgtSZgL9lQMBoQ8+McMyEZsJuS/36
    +P///9uplL5lP+3UyevOws2HafDc1NCPdOjHuejIur9mQO3TyeXCs8NxTv37+vv18sh7W8h8XP/+
    /uS+rt2umtOXfuXBsvfs6Pjv6+bDtMFqRvny7vHf1/36+dyrlvXn4e/a0dadhMBpRP79/f7+/fz4
    9sJuSvHe1vnw7PPi2+O9rNqmkN2tmeC2pP78+8Z3Vfft6L9mQfz59+fFt8JtSdKVe79nQsuDZcV0
    UtGSd8NvTFLhcR8AAAABYktHRApo0PRWAAAAB3RJTUUH6QMaAysVnHCKGgAAAJpJREFUGNONj1cS
    ggAUA2NBIdi7WAErYEFFBRXr/c8k7QC8n8zuRyYPSHWZbC4fhFAoJkKUKAOlMiuJqJI1oE42EtEk
    pRbaZCfmbq9PKoMhOYrFmDI5maoa9Yhn84VC6svVmkYkZJrWhtvd3qYkBmwdNAFH8hR2O4FweAYu
    vLowSc/CzbMtwL0/gqUGVR/+8xUWvT/h9u8vxaN/UKUNLao7WagAAAAldEVYdGRhdGU6Y3JlYXRl
    ADIwMjUtMDMtMjZUMDM6NDM6MjArMDA6MDDH702KAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTAz
    LTI2VDAzOjQzOjIwKzAwOjAwtrL1NgAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNS0wMy0yNlQw
    Mzo0MzoyMSswMDowMEfQ310AAAAASUVORK5CYII=" />
    </svg>
    

    禁用动态标签页标题:根据自己需要设置,建议选上。分组:需要先新建配置文件组,然后再在这里选。

阅读时长1分钟
Andrew Moa