You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:33:38