python画图代码的输入数据可以取出来_用Python写了个小程序:最小二乘法、读取文件、作图以及数据输出到文件...
#最小二乘法
import numpy as np
#numpy是一个基于python的基础的科学计算包,在本代码中我们会用它来实现方差和标准偏差的计算
from decimal import * #Python提供了decimal模块用于十进制数学计算,它具有以下特点:
#提供十进制数据类型,并且存储为十进制数序列;
#有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext().prec=x
来设定,不同的数字可以有不同的精度
#浮点:十进制小数点的位置不固定(但位数是固定的)
from scipy.optimize import
leastsq#从scipy的包里提取leastsq函数
#import matplotlib.pyplot as
plt#从matplotlib的包里提取绘图的函数
###采样点(Xi,Yi)###
data=np.loadtxt('5198.flux')#导入文件
data0=np.loadtxt('hat25.model.e.m.flux')#导入文件
X=data[:,0]#观测数据的时间
Y=data[:,1]#观测时间的归一流量
Y0=data0[:,1]#计算的归一流量
Y1=Y-Y0#残差
###需要拟合的函数func及误差error###
def func(p,x):
k,b=p
return k*x+b
def error(p,x,y,s):
print(s)
return func(p,x)-y
#x、y都是列表,故返回值也是个列表
#TEST
p0=[0,0]
#print( error(p0,X,Y1) )
###主函数从此开始###
s="Test the number of iteration"
#试验最小二乘法函数leastsq得调用几次error函数才能找到使得均方误差之和最小的k、b
Para=leastsq(error,p0,args=(X,Y1,s))
#把error函数中除了p以外的参数打包到args中
k,b=Para[0]#leastsq会返回两个数 一个是Para[0]
另一个是Para[1],Para[0],内含需要拟合的参数,而Para[1]一般为1,具体的含义暂时不清楚
print('b=',Decimal(b),"k=",k,"PARA[1]=",Para[1])#输出拟合的参数b和k,其中b保留了28位小数点,具体的保留原因请参见Decimal的函数说明
print('Y1=',k,'*X+',Decimal(b))#输出拟合得到的公式
Y2=k*X+b#创建光变曲线中隐含的斜率直线
Y3=Y-Y2#从观测得到的光变曲线中减去含斜率的直线
data[:,1]=Y3#将修正后的数据输入data中
###绘图,看拟合效果###
import matplotlib.pyplot as
plt
import numpy as np
fig1 = plt.figure('fig1')
plt.scatter(X,Y1,color="red",label="Sample Point",linewidth=3)
#画残差点
y=k*X+b
Y4=Y1-Y
var=np.var(Y4)
print('VAR=',var)#输出方差
plt.plot(X,y,color="orange",label="Fitting Line",linewidth=2)
#画拟合直线
plt.legend()
plt.show()
fig2 = plt.figure('fig2')
plt.scatter(X,Y3,color="red",label="Sample
Point",linewidth=3)#画修正后的线
plt.plot(X,Y0,color="k",label="Sample
Point",linewidth=3)#画计算的曲线
plt.legend()
plt.show()
np.savetxt("result.txt",data,fmt="
.10f")
#逐步计算标准误差
import math
import numpy as np
from decimal import *
add=[]#创建空的数组
#data=np.loadtxt('5198.flux')#导入文件
data0=np.loadtxt('hat25.model.e.m.flux')#导入文件
print("逐步计算标准误差")
for i in range(0, 300 + 1):
if
np.all(data0[i,1]==data0[i+1,1]):
add.append(data[i,1]);通过append函数,每循环一次就会向add数组的末尾增加一个数
a=np.std(add);#求add的标准差
print(' .10f' % a)#输出格式的控制, .10f
就是一共可以有20位数字,小数点之后保留10位小数。
python画图代码的输入数据可以取出来_用Python写了个小程序:最小二乘法、读取文件、作图以及数据输出到文件...相关推荐
- python画图代码的输入数据可以取出来_python 导入数据及作图的实现
我们经常需要导入数据,按列提取 XY作图 方法一. filename='/home/res/user/csluo/test.txt' #将文件名赋值为变量 X,Y,Z=[ ],[ ],[ ] #给三个 ...
- 简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...
python opencv如何实现简易画图板?本篇文章小编给大家分享一下python opencv实现简易画图板代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下 ...
- python保存代码需要删除头部信息吗_用python删除java文件头上版权信息的方法
在使用他人代码时,为不保留文件头部版权信息,需要一个个删掉,费时费力, 写了个脚本,简单清除掉目录下所有的文件的头部版权信息.# -*- coding: utf8 -*- ''''' 删除java文件 ...
- python爱心代码_母亲节快到了,用Python给老妈写个祝福小程序吧~
导 语 看到好多人留言问我咋好久没更新文章了,于是看了下上篇文章的发布日期,好吧确实挺久的,是该上线更一波文章了.想到母亲节快到了,不如就用Python给老妈写个祝福小程序吧~让我们愉快地开始吧~ 相 ...
- python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!
原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...
- python用程序说爱你_用python写一个聊天小程序!和女朋友的专属聊天工具!
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. Internet的传输层有两个协议 ...
- 用python写一个聊天小程序!和女朋友的专属聊天工具!
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. PS:如有需要Python学习资料 ...
- python日历小程序_python写的日历小程序
查看: 14785|回复: 262 [作品展示] python写的日历小程序 电梯直达 发表于 2013-8-19 21:38:32 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好友,享 ...
- python纯函数_理想国真恵玩Python从入门到精通第006天_纯函数写游戏管理系统
原标题:理想国真恵玩Python从入门到精通第006天_纯函数写游戏管理系统 前面已经带大家学习了函数,高级数据类型,比如说字典,今天带大家用函数加字典做一个游戏管理系统,希望大家喜欢.废话不多说,直 ...
最新文章
- 陶哲轩实分析定理17.3.8(三)
- java怎么将加载图片消除_Java中加载图片的方法
- python split()方法_秘籍:10个Python字符串处理技巧(附代码)
- hdu4609 3-idiots
- Android 日志自动分析,Android Log Viewer:一个日志查看器工具,可简化实时对Android日志的分析...
- Docker发布镜像至Docker Hub
- 一个麻省理工学院毕业生对中国教育的反思 转
- PHP 数字缩短(最多1倍)与还原
- 山东新动能软件创新·创业大赛 首场宣讲答疑会顺利举行
- 计算机键盘的中心键,电脑键盘上各键的功能及作用
- 常用软件的替代软件 (免费和自由软件)
- 当cmd里安装不了Appium-Python-Client时,Requirement already satisfied: Appium-Python-Client in
- 微信图片去除马赛克_微信怎么把图片加上马赛克_微信如何将照片打码的方法介绍_3DM手游...
- Android Junit 单元测试 Method wrap in org.json.JSONObject not mocked
- 绘制二次贝塞尔曲线的几种方式
- 齿轮-转子-轴承系统动力学matlab程序代码
- 计算机专业除了当码农,还有什么好的就业方向?
- shopee数据分析:虾皮卖家如何正确分析shopee卖场数据?
- 【融职培训】Web前端学习 第7章 Vue基础教程4 组件传值
- mysql与mysqld