lisp 线性标注自动避让_三氯化六氨合钴综合实验的python自动化作图方法

本学期的有机实验终于过去,终于可以好好鼓捣一下python能大显身手的实验 了,前面几个分析和生化实验也没啥好作图的,不过无机和物化里面用到线性拟合图像以及其他图像的地方还是非常多

总之,所有的”origin作图“,理论上全都可以用python代替,origin的优势在于拿起就能做,而python的优势在于一劳永逸

1. 引言

这个实验一共包括两处需要计算机作图的地方

  1. 电位分析法测定氯离子含量
  2. 可见分光光度法测定钴配合物吸收曲线和最大吸收光波长

2. 需求分析与要点解决

2.1 氯离子含量测定

在电位分析法测定氯离子含量中,需要得到一个这样的科研图像

  1. 线性拟合标准曲线
  2. 从线性拟合标准曲线上找出样品电位所在的位置,并得到对应的氯离子浓度

第一点在往期的推送以及我的experment_kit项目中有很多例子,一些拟合方法啥的大家可以回顾一下往期的例子,包括:

experiment_kit项目:https://github.com/ff6757442/experiment_kit

第二点我也是近期才想到的解决办法,其实也不复杂,我们以往的曲线拟合都是得到y对x的方程,从x去求y,而这个的要求是从y求x,所以只需要再拟合一次就好了,即以y为自变量对x拟合得到一个方程,再去由y得到x就可以了。并且这个样品点的标注可以由pyplot.annotate()方法完成,片段代码如下:

# 线性拟合
P_linear, R2 = linear(x1, y1)
P_reverse, R2_2 = linear(y1, x1)
xx = np.linspace(np.min(x1), np.max(x1), 50)
yy = np.polyval(P_linear, xx)
# 样品点求取
y_sample = 127 # 样品电位值
x_sample = np.polyval(P_reverse,y_sample) # 样品氯离子含量
# 在图中标出样品点
test_point = np.array([x_sample,y_sample])
test_txt_point = test_point+np.array([-0.2, -20])
msg_test = f'样品:E={y_sample}mV, pCl={x_sample:.3f}'
plt.plot(test_point[0],test_point[1],'p', markersize=15, color='purple')
plt.annotate(msg_test, xy=test_point, xytext=test_txt_point,
             arrowprops=dict(facecolor='black',width=0.05,shrink=0.02))

此片段中的linear函数是我打包了的一个简化套装,基于statsmodels.api和numpy,它的具体片段可以参考我的往期文章和experiment_kit项目。再加上其他必要片段,可得到完整代码:(见后)

2.2 可见分光光度法测

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值