python数据可视化技巧的100个练习 -- 3. 使用 Matplotlib 绘制正弦波
他们要求你创建一个正弦波图,以表示典型的日常温度模式。你的任务是使用 numpy 生成一个正弦波,然后使用 matplotlib 进行绘制。x 轴应表示一天中的 24 小时,y 轴应表示摄氏温度。正弦波的振幅应为 5°C,并且围绕 20°C 居中。请在代码中创建输入数据,并生成一个清晰且带有标签的图表。【数据生成代码示例】
import numpy as npx = np.linspace(0, 24, 100)y = 5 * np.sin(2 * np.pi * x / 24) + 20
【图表答案】
【代码答案】
import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 24, 100)y = 5 * np.sin(2 * np.pi * x / 24) + 20plt.figure(figsize=(10, 6))plt.plot(x, y)plt.title('Daily Temperature Fluctuation')plt.xlabel('Time (hours)')plt.ylabel('Temperature (°C)')plt.grid(True)plt.xticks(np.arange(0, 25, 4))plt.ylim(10, 30)plt.show()
这段代码展示了如何使用 Python 中的 numpy 和 matplotlib 创建正弦波图。numpy(别名为 np):用于数值运算和创建数组。matplotlib.pyplot(别名为 plt):用于创建图表和可视化。np.linspace(0, 24, 100):此函数在 0 到 24 之间生成 100 个均匀间隔的点,表示一天中的小时数。正弦波公式:5 * np.sin(2 * np.pi * x / 24) + 202 * np.pi * x / 24:调整正弦波使其在 24 小时内完成一个周期plt.figure(figsize=(10, 6)):设置图表的大小plt.xlabel() 和 plt.ylabel():标记 x 轴和 y 轴plt.grid(True):为图表添加网格,以便更好地阅读plt.xticks(np.arange(0, 25, 4)):将 x 轴刻度设置为每 4 小时一个间隔plt.ylim(10, 30):将 y 轴范围设置为 10°C 到 30°C生成的图表显示了 24 小时内温度的变化,峰值出现在中点(12 小时),低谷出现在一天的开始和结束。这种表示是一天中温度变化的简化模型,可用于理解气象数据中的总体模式。【小知识】
- 正弦波在许多自然现象中都是基础性的,包括声波、光波和交流电。
- 在气象学中,尽管日常温度模式通常用正弦波近似表示,但实际的温度波动通常由于云层覆盖、降水和风等因素而更为复杂。
- Matplotlib 是 Python 中最受欢迎的绘图库之一,它提供了一个类似 MATLAB 的界面,用于创建各种静态、动态和交互式可视化。
- 在这个例子中使用 numpy 展示了它在高效处理数学运算方面的强大功能,尤其是在处理大量数据数组时。
- 在更高级的气象建模中,傅里叶分析(涉及将信号分解为正弦和余弦分量)通常用于分析和预测更长时间段内的温度模式。