原始数据来源:按电学实验《指针式电表的改装与测量》规范操作所得。
原始表头刻度[20, 40, 60, 80, 100](单位:uA)
改装为1mA电流表[0.2020, 0.3983, 0.5942, 0.7999, 1.0061](单位:mA)
改装为10mA电流表[2.003, 3.972, 5.996, 7.963, 10.029](单位:mA)
改装为1.5V电压表[0.298, 0.589, 0.886, 1.192, 1.497](单位:V)
以原始表头刻度为x,改装后标准表读数为y,绘制校准线。理论上校准线应为正比列函数,下面就来绘制校准线验证线性关系。
需要画三种改装表的校准线,这里我选择把三张表画在一个画板上。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20, 101, 20)
x_ = np.arange(20, 101, 10)
x_inv = []
for i in range(len(x_)):
x_inv.append('')
# 由于三个图的x坐标都一样,前两个图的横坐标的刻度(ticks)和标签(label)都不必显示
y1 = [0.2020, 0.3983, 0.5942, 0.7999, 1.0061]
y2 = [2.003, 3.972, 5.996, 7.963, 10.029]
y3 = [0.298, 0.589, 0.886, 1.192, 1.497]
plt.figure(figsize=(6, 10))
plt.style.use('seaborn-notebook')
# 第一个子图
plt.subplot(3, 1, 1)
plt.title('range = 1mA')
plt.grid(True)
plt.plot(x, y1, "b-*")
for i in range(5): # 在每个点上标出具体数值
plt.text(x[i]-3, y1[i]+y1[1]*0.1, s=y1[i])
plt.xticks(x_, x_inv)
plt.ylabel('standard scale/mA')
# 第二个子图
plt.subplot(3, 1, 2)
plt.title('range = 10mA')
plt.grid(True)
plt.plot(x, y2, "g-*")
for i in range(5):
plt.text(x[i]-3, y2[i]+y2[1]*0.1, s=y2[i])
plt.xticks(x_, x_inv)
plt.ylabel('standard scale/mA')
# 第三个子图
plt.subplot(3, 1, 3)
plt.title('range = 1.5V')
plt.grid(True)
plt.plot(x, y3, "y-*")
for i in range(5):
plt.text(x[i]-3, y3[i]+y3[1]*0.1, s=y3[i])
plt.xticks(x_)
plt.xlabel('origin scale/uA')
plt.ylabel('standard scale/mA')
plt.show()
最后画出的图为
线性关系得以验证 ,几乎是一条直线,实验比较成功。