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

Python反照率函数扩展:实现行星温度范围计算与可视化

反照率计算与可视化实现

你已经完成了核心的反照率计算函数,接下来可以通过以下步骤实现温度范围的批量计算与结果可视化:

1. 完整代码实现

import numpy as np
import matplotlib.pyplot as plt

def calculate_albedo(T):
    alpha_o = 0.289
    alpha_i = 0.7
    T_o = 293
    T_i = 260

    if T >= T_o:
        alpha = alpha_o
    elif T <= T_i:
        alpha = alpha_i
    else:
        alpha = alpha_o + (alpha_i - alpha_o) * (T - T_o)**2 / (T_i - T_o)**2
        
    return alpha

# 生成250K到300K的温度序列(步长0.1K,保证曲线平滑)
temperatures = np.linspace(250, 300, 501)

# 批量计算每个温度对应的反照率
albedos = [calculate_albedo(T) for T in temperatures]

# 绘制可视化图表
plt.figure(figsize=(10, 6))
plt.plot(temperatures, albedos, linewidth=2, color='#2c3e50')

# 设置图表标签与样式
plt.xlabel('全球平均温度 (K)', fontsize=12)
plt.ylabel('反照率', fontsize=12)
plt.title('行星反照率随全球平均温度的变化', fontsize=14, pad=20)
plt.grid(True, linestyle='--', alpha=0.7)
plt.xlim(250, 300)
plt.ylim(0.25, 0.75)

# 显示图表
plt.show()

2. 代码说明

  • 温度序列生成:用np.linspace生成250到300之间的501个均匀分布的温度点,步长为0.1K,确保绘制的曲线足够平滑。
  • 批量计算:通过列表推导式遍历所有温度点,调用你定义的calculate_albedo函数得到对应的反照率值。
  • 图表配置:设置了清晰的坐标轴标签、标题,添加网格线以提升可读性,同时限定了坐标轴范围让数据展示更聚焦。

3. 替代循环实现(纯Python,无需numpy)

如果不想依赖numpy,也可以用基础的for循环实现:

# 生成温度列表(步长1K)
temperatures = list(range(250, 301))
albedos = []

for T in temperatures:
    albedos.append(calculate_albedo(T))

# 绘图部分与上述代码一致,只需替换 temperatures 和 albedos 变量即可

内容的提问来源于stack exchange,提问作者Gabby Fanti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:43:10