如何在CoolProp的PropertyPlot上叠加绘图?遇plot属性报错
解决CoolProp PropertyPlot叠加绘图的AttributeError问题
错误原因
PropertyPlot对象本身没有plot方法,直接调用plot.plot(x,y)会触发AttributeError。CoolProp的绘图类基于matplotlib实现,需要通过其关联的matplotlib轴对象来叠加自定义曲线。
修正方案
获取PropertyPlot对应的matplotlib轴实例,使用matplotlib原生的绘图方法在该轴上添加曲线,以下是两种可行方式:
方式1:通过PropertyPlot.axes属性获取轴对象
def plot_logph(): import matplotlib.pyplot as plt import numpy as np import CoolProp y = np.array([100000,150000]) x = np.array([600,800]) # 初始化CoolProp绘图对象 plot = PropertyPlot('HEOS::R290', 'PH', unit_system='EUR', tp_limits='ACHP') plot.calc_isolines(CoolProp.iQ, num=11) plot.calc_isolines(CoolProp.iT, num=25) plot.calc_isolines(CoolProp.iSmass, num=15) # 获取绘图轴并叠加自定义曲线 plot.axes.plot(x, y, label='自定义曲线') plot.axes.legend() # 可选:添加图例 plot.show()
方式2:直接使用matplotlib的plt.plot(需先绘制热力图创建轴)
def plot_logph(): import matplotlib.pyplot as plt import numpy as np import CoolProp y = np.array([100000,150000]) x = np.array([600,800]) # 初始化CoolProp绘图对象并绘制热力图 plot = PropertyPlot('HEOS::R290', 'PH', unit_system='EUR', tp_limits='ACHP') plot.calc_isolines(CoolProp.iQ, num=11) plot.calc_isolines(CoolProp.iT, num=25) plot.calc_isolines(CoolProp.iSmass, num=15) plot.draw() # 先绘制热力图,确保轴已创建 # 叠加自定义曲线 plt.plot(x, y, color='red', linestyle='--', label='自定义曲线') plt.legend() plot.show()
注意事项
- 自定义曲线的坐标单位需与
PropertyPlot设置的unit_system(示例中为EUR)一致,否则曲线位置会偏离。 - 可通过
color、linestyle、marker等参数调整自定义曲线的样式。
内容的提问来源于stack exchange,提问作者coconut
相关产品推荐
相关产品推荐

