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

news2024/9/23 1:34:17

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

用户输入:允许用户输入温度计在冰水混合物和沸水中的读数,以及一个实际温度值。
计算校准因子:根据用户输入的冰水混合物和沸水的读数,计算温度计的校准因子。
计算显示温度:根据用户输入的实际温度,计算温度计的显示温度。
绘制图像:绘制实际温度与显示温度的关系图,并在图像上标记特定点。
添加时间戳:在图像的右下角添加生成图像的时间。
在这里插入图片描述

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业级使用docker实现负载均衡

利用Docker容器编排完成haproxy和nginx负载均衡架构实施 利用 Docker 编排实现 HAProxy 和 Nginx 负载均衡架构的介绍: 首先,使用 Docker Compose 进行容器编排。创建一个 haproxy.yml 文件,定义 HAProxy 和 Nginx 服务。HAProxy 容器作为前…

线性回归算法详解

目录 线性回归算法 线性回归方程 误差项分析 似然函数求解 线性回归求解 梯度下降算法 下山方向选择 梯度下降优化 梯度下降策略对比 学习率对结果的影响 代码实现 线性回归算法 线性回归是回归算法中最简单、实用的算法之一,在机器学习中很多知识点都是…

深入探讨Java JSON解析与HTML标签清除:详解与实例

“在Java开发中,解析和处理JSON文件是一项常见任务,尤其是当数据中包含大量HTML标签时,去除这些标签又是一项挑战。本文将详细讲解如何在Java中解析JSON文件,创建对应的实体类,并介绍去除HTML标签的方法,最…

RK3588开发板利用udp发送和接收数据

目录 1 send.cpp 2 receive.cpp 3 编译运行 4 测试 1 send.cpp #include <iostream> #include <string> #include <cstring> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> //…

【网络安全】Instagram 和 Meta 2FA 绕过漏洞

未经许可,不得转载。 文章目录 漏洞概述技术细节Meta 2FA 绕过步骤Instagram 2FA 绕过步骤总结漏洞概述 该漏洞允许攻击者在具有受害者Facabook账户权限的情况下,绕过 Meta 的双重身份验证 (2FA) 机制,实现账户接管;并且也能够绕过 Instagram 的双重身份验证 (2FA) 机制,…

堆排序的例题

答案&#xff1a;D C 知识点&#xff1a; 堆排序是把数组排成大顶堆或者小顶堆&#xff0c;选择根结点的最大值或者最小值&#xff0c;因此它是选择排序的方法 堆排序的方法是&#xff1a; 先把数组所有数据组成一个二叉树&#xff0c;然后调整结点与左右孩子树之间的位置&…

【Hot100】LeetCode—35. 搜索插入位置

目录 1- 思路二分 2- 实现⭐35. 搜索插入位置——题解思路 3- ACM 实现 题目连接&#xff1a;35. 搜索插入位置 1- 思路 二分 二分左区间的三种情况。由于目标值不一定在数组中&#xff0c;因此二分的过程中有三种情况判断 2- 实现 ⭐35. 搜索插入位置——题解思路 class So…

大模型参数高效微调技术原理综述(四)-Prompt Tuning

紧接着Stanford的Prefix Tuning论文&#xff0c;Google迅速发表了Prompt Tuning技术论文。Google声称该技术比Prefix Tuning更易上手且成本更低&#xff0c;因此该技术随后也成为了微调技术中的一个重要分支。 本文解读论文**《The Power of Scale for Parameter-Efficient Pr…

Java类加载器双亲委托模型概述

类加载器的双亲委派模型 模型图 加载原理 双亲委派模型的工作过程是&#xff1a;如果一个类加载器收到了类加载的请求&#xff0c;它首先不会自己去尝试加载这个类&#xff0c;而是把这个请求委派给父类加载器去完成&#xff0c;每一个层次的类加载器都是如此&#xff0c;因此所…

C/C++逆向:寻找mian函数(其他编译配置特征)

在上篇文章中写了在逆向中定位main函数几种方法&#xff0c;其中有一种方法是通过编译器特征定位 main 函数&#xff08;使用IDA分析简单demo程序获取特征&#xff0c;根据得到的特征可以定位相同编译器编译程序的main函数&#xff09;。在上一篇文章中我们提取了VS环境(VS2017…

【软件测试专栏】软件测试 — 概念篇

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;软件测试专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 软件测试 — 概念篇 关键词&#xff1a;软件需求、用户需求、开发…

从混乱到秩序:产品经理在需求变更中的关键角色

在软件开发过程中&#xff0c;需求是驱动整个项目的核心。需求的来源多种多样&#xff0c;包括客户、市场、领导等&#xff0c;产品经理的职责是将这些需求收集、整理并转化为可行的开发计划。本文将探讨需求的来源、产品经理的角色、软件开发中的挑战以及应对变化的策略。 需求…

Java小白一文讲清Java中集合相关的知识点(一)

集合 诞生缘由 数组 长度开始时必须指定&#xff0c;而且一旦指定&#xff0c;不能更改保存的必须为同一类型元素使用数组进行增/删元素所需要编写的代码–比较麻烦 Person[] pers new Person[1]; pers[0] new Person(); //此时增加新的Person对象呢&#xff1f; Person[…

【学习笔记】卫星通信NTN 3GPP标准化进展分析(一)-基本信息

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xf…

前端开发第二节课

HTML常用的标签 文本格式化标签 在网页中&#xff0c;有时需要为文字设置粗体、斜体或下划线等效果&#xff0c;这时就需要用到HTML中的文本格式化标签使文字以特殊的方式显示。 标签语义&#xff1a;突出重要性&#xff0c;比普通文字更重要。 加粗 <strong></st…

Spring框架;Spring中IOC简介及搭建;Spring中AOP简介;

一&#xff0c;Spring介绍 Spring 的全称&#xff1a; Spring Framework Spring是一个优秀的开源的轻量级的企业应用开发框架&#xff0c;是为了解决企业应用程序开发复杂性而创建的。它大大简化了java企业级开发的复杂性&#xff0c;提供了强大&#xff0c;稳定的功能&#xf…

XR-Frame 实现 始终朝向屏幕(相机)的面片与模型

wxml&#xff0c;xr-frame中plane平面默认是趴在场景中的&#xff0c;需要先绕x轴渲染90度&#xff0c; // 面片 <xr-node id"l" position"-3.0 0 0.0"><xr-mesh rotation"90 0 0" geometry"plane" uniforms"u_base…

浅析synchronized锁升级的原理与实现 2

本文内容是继我的上篇博客 浅析synchronized锁升级的原理与实现 1-CSDN博客 目录 各状态锁的升级场景 无锁 --> 轻量级锁 偏向锁 --> 轻量级锁 偏向锁 --> 重量级锁 轻量级锁 --> 重量级锁 总结 各状态锁的升级场景 下面我们结合代码看下各状态锁的升级场景。…

VL53L1CB TOF开发(2)----多区域扫描模式

VL53L1CB TOF开发.2--多区域扫描模式 概述视频教学样品申请源码下载硬件准备主要特点生成STM32CUBEMX串口配置IIC配置XSHUTGPIO1X-CUBE-TOF1堆栈设置函数说明初始化设置预设模式 (Preset mode)VL53L1_SetPresetModeVL53L1_SetDistanceMode时间预算单个ROI&#xff08;Single R…

从 Oracle 到 TiDB 丨数据库资源评估指南

原文来源&#xff1a; https://tidb.net/blog/5058e24f 本文作者&#xff1a;柳冬冬 导读 在当今技术飞速发展的时代&#xff0c;传统单机数据库正面临着前所未有的挑战。随着人工智能、云计算和大数据的崛起&#xff0c;企业对数据库的性能、可靠性和扩展性的需求日益增…