【问题标题】:Plotting time-dependent temperature fluctuation Python绘制随时间变化的温度波动 Python
【发布时间】:2021-03-18 20:03:43
【问题描述】:

我正在努力更好地了解地球上的周期性温度波动(每天和每年)。 Desmos 图形计算器帮助我将其可视化,但我很想尝试练习我相对较新的编码。我已经使用 Matplotlib 完成了基本的绘图,但这对我来说有点高级。所以,求解热方程后,我得到:

T = T0 + ΔT * e^(-z√ω/2κ) * cos(ωt-z√ω/2κ)

其中ΔT=周期性温度变化的幅度,T0=平均表面温度,z=深度,ω=循环频率(即每日波动为 7.27*10^-5 rad/s) , κ=热扩散率。

到目前为止,我只知道如何在 Python 中绘制基本方程,有什么技巧可以解决这个问题吗?

【问题讨论】:

  • 您在寻找线图还是 3d 曲面图?您应该查看 matplotlib 库 matplotlib.org/2.0.2/gallery.html 以找到一个可以将您的问题映射到的示例
  • 为简单起见,我认为最好使用折线图

标签: python matplotlib


【解决方案1】:

它帮助我将实际方程分离为一个函数,并简单地将方程的结果插入到图中:

import numpy as np
import matplotlib.pyplot as plt

def thermal_equation(t0, delta_t, z, w, k, total_time):
    t = np.linspace(0, total_time, total_time)
    temp = t0 + delta_t*np.exp(-z*w**0.5/2*k)*np.cos(w*t-(z*w**0.5/2*k))
    return t, temp

x, y = thermal_equation(273, 50, 10, 7.27*10e-5, 0.143, 36000)

plt.plot(x, y, label='temperature fluctuation')
plt.xlabel('time (s)')
plt.ylabel('temperature (K)')
plt.legend(loc='lower right')

显然我在示例图中使用了玩具值,因此请随意插入您自己的值。

【讨论】:

  • 好吧,这更接近我的目标!但是,我希望 y 轴上的 depth(z) 和 x 轴上的 T。
  • 您只需将生成 x 和 y 的函数替换为以 T 作为变量并返回 z 作为因变量的函数。反过来,您需要确定时间。如果我的回答对你有帮助,请考虑采纳为正确答案,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多