摘要

大物实验的数据处理、作图、计算斜率、不确定度是否令你苦恼?在密密麻麻的坐标纸上作图是否令你感到头秃?没有关系,软件作图+数据处理一体化流程可以大大简便你的工作!

本文用到以下两个软件,任选其一即可:

其中Origin通用且方便计算不确定度,Python适用于有编程基础、不需要计算不确定度时。

根据已知数据点拟合

Origin

打开OringinPro,创建blank workbook

将已知数据点输入框,并标注变量名及单位

如果需要拟合的Y变量为Y1处理后的结果,如lnY1,可以setColumnValues直接处理

Origin公式语法很简单,不清楚的可以百度

选择菜单栏-plot-scatter,绘制散点,观察散点符合什么样的曲线

选择菜单栏-analysis-自己需要的拟合方式

linear fit:线性拟合

nonlinear curve fit:非线性拟合,可进入窗口选择所需的拟合形式。

在category中,exponential为指数拟合,logarithm为对数拟合。

选择category后,可进入function中选择具体的系数格式。

制定需要拟合的变量,进行拟合,图中会给出拟合函数的参数、不确定度

Python

线性拟合

import numpy as np

from scipy.optimize import leastsq

x=np.array([0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5])

y=np.array([0.000,0.022,0.041,0.058,0.078,0.094,0.119,0.138,0.155,0.175,0.192,0.213])

def residuals(p):

"计算以p为参数的直线和原始数据误差"

k,b=p#若不是线性拟合,则修改对应参数

return y-(k*x+b)

#leastsq使residuals()输出数组的平方和最小,初值[1,0]

r=leastsq(residuals,[1,0])#若不是线性拟合,则修改对应参数

k,b=r[0]#若不是线性拟合,则修改对应参数

x1=np.arange(0.00,5.50,0.01)

y1=k*x1+b#若不是线性拟合,则修改对应参数

print("k=",k,"b=",b)#若不是线性拟合,则修改对应参数

#画图

import matplotlib.pyplot as plt

plt.scatter(x,y,c='g',label='scatter')#散点图

plt.plot(x1,y1,'b',label='fitting')

plt.title('半桥电路')

plt.xlabel('△X')

plt.ylabel('△V')

plt.legend()#显示标签

plt.show()

输出:

k= 0.03846853146643514 b= 0.0012948717948720755

非线性拟合

若使用其他函数进行拟合,只需将k*x+b替换为对应和函数(参数)即可。

两曲线画在一张图中

只需修改两段代码的变量名称,绘图时scatter/plot两次:

#画图

import matplotlib.pyplot as plt

plt.scatter(x2,y2,c='b',label='全桥散点')#散点图

plt.plot(x1,y1,'b',label='全桥拟合')

plt.scatter(x,y,c='r',label='半桥散点')#散点图

plt.plot(x3,y3,'r',label='半桥拟合')

plt.title('两电路△V-△X图像')

plt.xlabel('△X')

plt.ylabel('△V')

plt.legend()#显示标签

plt.show()

输出:

k= 0.09064835176318456 b= 0.007285713826015861

k= 0.03846853146643514 b= 0.0012948717948720755

连接数据点作平滑曲线

Origin

Python

同样用到B-样条插值。

输入:

import numpy as np

import matplotlib.pyplot as plt

#进行样条插值

import scipy.interpolate as spi

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

#数据准备

X=[15.1,17.1,19.1, 19.4,21.4,23.4, 25.6,27.6,29.6, 30.6,32.6,34.6, 37.0,39.0,41.0, 42.5,44.5,46.5, 49.2,51.2,53.2, 54.7,56.7,58.7, 61.8,63.8,65.8, 67.6,69.6,71.6, 75.2,77.2,79.2, 81.2,83.2,85.2]

Y=[175,213,179, 176,87,178, 298,340,272, 171,43,168, 345,407,332, 159,24,158, 399,466,371, 210,57,164, 433,517,437, 250,144,229, 518,588,505, 369,307,379]

#定义插值点

ix3=np.arange(15.1,85.2,0.1)

#进行三次样条拟合

ipo3=spi.splrep(X,Y,k=3) #样本点导入,生成参数

iy3=spi.splev(new_x,ipo3) #根据观测点和样条参数,生成插值

#作图

plt.plot(X,Y,'o',ix3,iy3)

plt.xlabel('Vp/V')

plt.ylabel('IA/μA')

plt.title('弗兰克-赫兹图')

plt.show()

输出:

python和origin数据分析_【Origin】【Python】大学物理实验数据处理相关推荐

  1. 大学物理实验长度的测量实验报告_(完整精品)大学物理实验报告之长度基本测量...

    (完整精品)大学物理实验报告之长度基本测量 大学物理实验报告姓名 学号 学院 班级 实验日期 2017 年 5 月 23 日 实验地点:实验楼 B411室实验名称 长度的基本测量 组号 第 组[实验目 ...

  2. 大学物理实验长度的测量实验报告_(完整精品)大学物理实验报告之长度基本测量.doc...

    (完整精品)大学物理实验报告之长度基本测量.doc 大学物理实验报告 评 分姓名 学号 评 分 学院 班级 实验日期 2017 年5 月23 日 实验地点:实验楼B411室 实验名称 长度的基本测量 ...

  3. python多维数据分析_使用python进行数据分析

    Life is short, I use python! 1 python中常用的数据分析包 2 python:一维数据分析 2.1 用numpy包进行一维数据分析 import numpy as n ...

  4. 用python进行股票数据分析_利用python进行股票数据分析

    个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...

  5. python足球大数据分析_使用Python抓取欧洲足球联赛数据进行大数据分析

    背景 Web Scraping 在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤 数据的采集和获取 数据的清洗,抽取,变形和装载 数据的分析,探索和预测 数据的展现 其中 ...

  6. 基于python的房地产数据分析_基于Python的数据分析

    转载 | CSDN 编辑 | 雷课小雷 下面来介绍一下基于Python的数据分析,主要介绍数据分析的概念.数据分析流程.Python优势.常用模块的用途以及使用Python进行数据分析的学习方法及步骤 ...

  7. python tus股票数据分析_使用Python进行快速复盘[1]: 数据获取与整理

    各位小伙伴周末好,本周想给大伙分享的内容是使用Python进行复盘,有小伙伴问到自己是否有必要学习Python,不可否认Python在进行数据分析时有很多优势,学习曲线也不算特别陡峭,但每个人具体情况 ...

  8. 用python处理excel 数据分析_使用python集合进行EXCEL数据分析

    使用python集合进行EXCEL数据分析 标准库 Python真正精彩的方面之一是它具有非常丰富的模块标准库 ,无需安装第三方模块即可进行一些复杂的编程. 如果您在系统上有效安装了python,则可 ...

  9. 用python进行股票数据分析_用 Python 做股市数据分析(2)

    这篇博文是用Python分析股市数据系列两部中的第二部,内容基于我在阅读第一部分).在这两篇博文中,我会讨论一些基础知识,包括比如如何用pandas从雅虎财经获得数据, 可视化股市数据,平均数指标的定 ...

  10. python爬取数据分析_使用Python爬取社交网络数据分析

    在线社交网站为人们提供了一个构建社会关系网络和互动的平台.每一个人和组织都可以通过社交网站互动.获取信息并发出自己的声音,因而吸引了众多的使用者.作为一个复杂的社会系统,在线社交网站真实地记录了社会网 ...

最新文章

  1. 学习开发自己的composer包,并使用GitHub实时更新到Packagist
  2. Ubuntu11.04更新源(转)
  3. 实现带header和footer功能的RecyclerView——完善篇
  4. 【日常小记】linux中强大且常用命令:find、grep
  5. 【HTML5】网页元素的拖放操作
  6. xml转化为kml_借助ogr2ogr工具实现shp文件转换kml格式
  7. MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息...
  8. Spring框架学习总结(上)
  9. 2019CCPCQHD Angle Beats
  10. hihoder 1048
  11. 建站过程中,网站优化的雷区
  12. Android:音乐播放器(3)—从播放列表到播放歌曲
  13. Excel公式-文本查找函数
  14. [DeploymentService:290066]Error occurred while downloading files from admin server for deployment re
  15. [个人经验]我的百度测试开发实习始与末
  16. IDEA中的DBCP使用及问题解决
  17. python识别火车票二维码_Python 实现火车票查询工具
  18. C# 以GB2312编码保存数据
  19. LaTeX自定义封面设计
  20. spacemacs使用彩虹猫

热门文章

  1. android获取手机唯一识别号
  2. python画马鞍面_在matlab中怎么画马鞍面?
  3. JavaCV入门教程
  4. 十级解读比特大陆内部信:比特大陆正在走向「詹克团化」
  5. 技巧|在苹果Mac上打开“终端”的3种方法
  6. Python头歌合集(题集附解)
  7. 微信小程序-蓝牙设备连接-蓝牙开门
  8. 基于Echarts实现可视化数据大屏服务大数据可视化监管平台
  9. 一个美国人到中国当产品经理的心得:中国App设计真好!
  10. 学建模从软件开始,8款超级好用的3d建模软件(内有安装包领取途径)