利用手机绘制标准曲线并且计算相关系数

需求场景

本人园艺专业,在做生理实验时常常有这样的需求:测量标品的实测值之后,身边没有电脑或者电脑上没有office并且不能联网。手机上wps表格又没有办法绘制趋势线和计算person er相关系数(线性相关系数)。
此外,如果能够及时的通过测量数据绘制出标准曲线,得到R值,那么就能过在实验过程中就能够及时修正,确保标准曲线得R值在0.99-0.999之间。

准备工作

以Android为例。
下载安装termux,并且安装好python以及numpy,pandas,matplotlib。

实现代码

import numpy as np
import matplotlib.pyplot as plt
import os
#标准品浓度
con = [1,0.5,0.25,0.125,0.0625]
#气相峰面积
area = [98.25,40.58,21.21,9.88,6.11]
#计算相关系数矩阵
R = np.corrcoef(con, area)
fig, ax = plt.subplots()
#绘制实心散点
ax.plot(con, area,"ob")
#拟合趋势线
z = np.polyfit(con, area, 1)
p = np.poly1d(z)
#绘制趋势线
ax.plot(con, p(con),"r-")
#将相关系数矩阵输出在图片的title位置
ax.set(xlabel='concetent', ylabel='area',               title=str(R))
#保存图形,并命名为test.png,可以更改格式如eps,svg
fig.savefig("test.png")
#用termux-open方式打开绘制的图形,因为termux没有图形化界面,因此plt.show()方法无法显示
os.system("termux-open test.png")

最后,祝愿各位科研愉快!

你可能感兴趣的:(笔记)