【物理教学】不准确温度计图像代码分享

这段Python代码用于绘制温度计校准的图像。它包括以下功能:

用户输入:允许用户输入温度计在冰水混合物和沸水中的读数,以及一个实际温度值。

计算校准因子:根据用户输入的冰水混合物和沸水的读数,计算温度计的校准因子。

计算显示温度:根据用户输入的实际温度,计算温度计的显示温度。

绘制图像:绘制实际温度与显示温度的关系图,并在图像上标记特定点。

添加时间戳:在图像的右下角添加生成图像的时间。

haskell 复制代码
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime

# 设置中文字体和负号正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

def calculate_calibration_factor(T_ice_reading, T_boiling_reading, T_ice_actual, T_boiling_actual):
    # 计算校准因子
    return (T_boiling_actual - T_ice_actual) / (T_boiling_reading - T_ice_reading)

def calculate_thermometer_reading(T_actual, calibration_factor, T_ice_reading, T_ice_actual):
    # 计算温度计的读数
    return (T_actual - T_ice_actual) / calibration_factor + T_ice_reading

# 用户输入
T_ice_reading = float(input("请输入温度计在冰水混合物中的读数:"))
T_boiling_reading = float(input("请输入温度计在沸水中的读数:"))
T_ice_actual = 0  # 冰水混合物的实际温度
T_boiling_actual = 100  # 标准大气压下沸水的实际温度

# 计算校准因子
calibration_factor = calculate_calibration_factor(T_ice_reading, T_boiling_reading, T_ice_actual, T_boiling_actual)

# 用户输入实际温度
T_actual = float(input("请输入实际温度:"))

# 计算温度计的读数
T_r = calculate_thermometer_reading(T_actual, calibration_factor, T_ice_reading, T_ice_actual)
print(f"在实际温度 {T_actual}℃ 下,温度计的读数为:{T_r:.2f}℃")

# 获取当前时间
current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

# 绘制图像
plt.figure(figsize=(10, 5))
plt.plot([0, 100], [T_ice_reading, T_boiling_reading], label='显示温度', color='blue')
plt.plot([0, 100], [0, 100], label='真实温度', linestyle='--', color='red')

# 相交点
plt.scatter(T_actual, T_r, color='black', edgecolor='red', s=80, marker='o', facecolors='none')  # 绘制数据点

# 向横纵坐标轴做垂线
plt.axvline(x=T_actual, color='black', linestyle='--')
plt.axhline(y=T_r, color='black', linestyle='--')

# 标记数值
plt.text(T_actual, T_r + 2, f'({T_actual:.0f}°C, {T_r:.2f}°C)', color='red', verticalalignment='bottom')

# 添加生成图像的时间
plt.text(0.95, 0.05, f'生成时间:{current_time}', horizontalalignment='right', verticalalignment='bottom', transform=plt.gca().transAxes)

plt.title('温度校准图像')
plt.xlabel('实际温度 (°C)')
plt.ylabel('显示温度 (°C)')
plt.legend()
plt.grid(True)
plt.show()
相关推荐
Wx-bishekaifayuan19 分钟前
springboot社区扶贫救助管理系统13300-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
周杰伦fans25 分钟前
构建真正智能的CAD AI绘图代理
开发语言·人工智能·c#
小小张说故事1 小时前
LightGBM 入门指南:更快的梯度提升树,Python 实战
后端·python·机器学习
Ticnix1 小时前
RAG 检索不准,九成的锅不在向量——不同文件,就该有不同的入库方案
后端·python·agent
jerryinwuhan1 小时前
python快速入门第二周
python
IT毕设梦工厂1 小时前
计算机毕业设计选题推荐:基于大数据的供应链数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hive·hadoop·python·数据分析·spark·课程设计
用户298698530141 小时前
Python 文档格式转换:Word 转 EPUB 实践
后端·python·api
IT毕设梦工厂2 小时前
计算机毕业设计选题推荐:基于大数据的二手车数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·数据分析数据可视化
Python图像识别2 小时前
17-【2027毕设】YOLO11水稻病害检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·深度学习·yolo·毕业设计·毕设
天天被压力2 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
java·人工智能·python