当前位置: 首页 > article >正文

使用python绘制图表

  1. 输入值:如图
    在这里插入图片描述
  2. 生成的表格:如下

在这里插入图片描述

3.代码如下

import matplotlib.pyplot as plt
import numpy as np
####################################################
#给与的值,描绘图片
A_Low = 0.1153607
B_Low = 0.001453239
C_Low = 0.000508077
T_Low = 300.8246

A_Mid = 0.1874887
B_Mid = 0.001586056
C_Mid = 0.0002653489
T_Mid = 300.8246

A_High = -15.02923
B_High = 0.0003478767
C_High = 0.01089852
T_High = 300.9223

##########################################################
def delta(P, A, B, C, T, coffd = 1):
    fTr50 =np.sqrt(T)
    fTterm= 100.24 + 0.2881*(T - 273.15)
    fPov  = P
    a = B * fTr50
    b = C * fTterm
    c = A - fPov
    # print("****************P =" + str(P)+"****************"+"\n\r")
    # print("a =" + str(a)+"\n\r")
    # print("b =" + str(b)+"\n\r")
    # print("c =" + str(c)+"\n\r")
    return (b*b -4.0 *a *c),a,b,c

def solve_formula(P, A, B, C, T, coffd = 1):
    delta_result,a,b,c = delta(P, A, B, C, T, coffd = coffd)
    # print("delta_result:" + str(delta_result)+"\n\r")
    # print("a =" + str(a)+"\n\r")
    # print("b =" + str(b)+"\n\r")
    # print("c =" + str(c)+"\n\r")
 
    if delta_result<0 :
        print("0")
        return
    #ft = - C * (100.24 + 0.2881*(T - 273.15))
    # Q1经过测试为负值,所以舍弃,Q2_sqrt为Q-P的关系
    # Q1_sqrt = (- C * (100.24 + 0.2881*(T - 273.15)) / np.sqrt(coffd) - np.sqrt(delta_result))/(2 * B * np.sqrt(T)/coffd)
    #Q2_sqrt = (ft / np.sqrt(coffd) + np.sqrt(delta_result))/(2 * B * np.sqrt(T)/coffd)
    f =(-b + np.sqrt(delta_result))/(2 * a)
    f = f * coffd
    #return np.power(Q2_sqrt, 2)
    # print("f  =" + str(f )+"\n\r")
    return f * f

#由于0到(1.6/100)*5 无解,所以从(1.6/100)*6
P1_Low = np.linspace((1.6/100)*6, 1.6, 100)  #logspace(a, b, n)生成一个数组,数据的第一个元素值为a,最后一个元素为b,n是总采样点数
P1_Mid = np.linspace(1.6, 15, 1000)
P1_High = np.linspace(15, 31, 1000)


Q_Low = []  #一种有序、可变的数据结构,可以存储不同类型的元素
Q_Mid = []
Q_High = []


for p in P1_Low:
    temp_low = solve_formula(p, A_Low, B_Low, C_Low, T_Low)
    #print("temp_low =" + str(temp_low)+"\n\r")
    Q_Low.append(temp_low)
for p in P1_Mid:
    temp_Mid= solve_formula(p, A_Mid, B_Mid, C_Mid, T_Mid)
    #print("temp_Mid =" + str(temp_Mid)+"\n\r")
    Q_Mid.append(temp_Mid)
    #Q_Mid.append(solve_formula(p, A_Mid, B_Mid, C_Mid, T_Mid))
for p in P1_High:
    temp_High= solve_formula(p, A_High, B_High, C_High, T_High)
    #print("temp_High =" + str(temp_High)+"\n\r")
    Q_High.append(temp_High)

   # Q_High.append(solve_formula(p, A_High, B_High, C_High, T_High))



#P1 = float(13)  #输入P1的值
P1 = input("请输入:")
P1 = float(P1)
print("你输入的内容是:",P1)
if (P1>=(1.6/100)*6) & (P1 < 1.6):
    print(solve_formula(P1, A_Low, B_Low, C_Low, T_Low))
elif (P1 >=1.6) & (P1 < 15):
    print(solve_formula(P1, A_Mid, B_Mid, C_Mid, T_Mid))
elif (P1>=15) & (P1<=31) :
    print(solve_formula(P1, A_High, B_High, C_High, T_High))
else:
    print("输入P1值无效!由于0到(1.6/100)*5 无解,所以P1的范围为" + str((1.6/100)*6) + "<=P1<=" + str(31))

#显示图表
plt.figure(0) 
plt.plot(P1_Low, Q_Low, '-', label='Low')
plt.plot(P1_Mid, Q_Mid, '-', label='Mid')
plt.plot(P1_High, Q_High, '-', label='High')

#画图例
plt.legend()
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
#指定坐标轴名称
plt.xlabel('P1')
plt.ylabel('Qm')
#显示
plt.show()





http://www.kler.cn/news/361606.html

相关文章:

  • 暴力匹配算法 (BF):字符串匹配算法的演进之路
  • 数据结构与算法:贪心算法与应用场景
  • 递归算法之二分搜索(Binary Search)详细解读
  • python脚本pull docker image
  • 漏洞挖掘 | 基于mssql数据库的sql注入
  • 手机玩黑色沙漠?GameViewer远程玩黑色沙漠教程
  • node和npm版本冲突
  • Java-如果你的目标是从一个包含多个 Map 的 List 中统计所有 Map 中特定键(例如 “name“)的值,并将这些值组成一个新的 List
  • “网络协议入门:HTTP通信的四大组成部分“
  • 4步教你绘制流程图,轻松提高工作效率!
  • python+大数据+基于spark的短视频推荐系统【内含源码+文档+部署教程】
  • ResourceManager 与 JobManager与 TaskManager 三者的协作关系
  • Swift用于将String拆分为数组的components与split的区别
  • 算法专题八: 链表
  • 9. JSON RPC 服务
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Git/SVN面试题
  • Spring Boot助力:构建响应式论坛网站
  • python 结构作业
  • Maven项目管理工具-初始+环境配置
  • Anthropic 发布Claude 3.5 Haiku 以及一项炸裂的新功能 AI可以模仿人类访问电脑
  • 【Linux系统编程】第三十六弹---深入探索进程间通信:封装共享内存类并实现进程间数据共享
  • 点跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换
  • Python基础——类与对象
  • C++算法练习-day15——1.两数之和
  • 打造开放式语音智能体
  • 拴柱说Mac之Mac的高效使用技巧第三期