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

Python如何绘制以数值标注代替颜色填充的垂直温差图表

逐分钟垂直温差计算及坐标数值标注绘图方案

1. 数据预处理与温差计算优化

原始数据中同一分钟仅首行带有时间戳,其余行时间字段为空,先做填充处理,再用pandas向量化操作替代手动循环计算温差,逻辑更稳定、运行效率更高:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 读取数据:原始数据为多空格分隔,空时间戳会自动识别为NaN,根据实际时间格式调整dayfirst参数
df = pd.read_csv('你的温度数据存储路径.csv', sep=r'\s+', parse_dates=['timestamp'], dayfirst=False)
# 向前填充空时间戳,让同一分钟的所有数据行匹配对应时间值
df['timestamp'] = df['timestamp'].ffill()

# 计算逐分钟垂直温差:以每分钟首个高度(100m)的温度为基准做差
# 分组广播计算无需手动维护循环索引,和原有循环逻辑结果完全一致
df['tempdiff'] = df['tempVirt'] - df.groupby('timestamp')['tempVirt'].transform('first')

原有手动维护索引j的循环写法容易出现索引越界、时间匹配错误的问题,分组transform写法原生适配pandas数据结构,数据量较大时速度优势明显。

2. 无填充色的数值标注绘图实现

直接在「时间-高度」对应的坐标位置绘制文本标注,不需要颜色填充区域,代码如下:

# 初始化画布
fig, ax = plt.subplots(figsize=(10, 6), dpi=100)

# 可选:添加浅灰色坐标点辅助定位,不需要可以注释掉
ax.scatter(df['timestamp'], df['high'], s=3, c='gray', alpha=0.4)

# 遍历所有数据行,在对应坐标位置标注数值
for _, row in df.iterrows():
    x = row['timestamp']
    y = row['high']
    # 标注内容按需选择:原始温度用row['tempVirt'],温差用row['tempdiff']
    show_val = f"{row['tempVirt']:.1f}"
    
    # 可选:根据温差正负设置文字颜色,不需要可以统一设置color='black'
    if row['tempdiff'] < 0:
        txt_color = 'tab:blue'
    elif row['tempdiff'] > 0:
        txt_color = 'tab:red'
    else:
        txt_color = 'black'
    
    # 文本居中放置在坐标点位置
    ax.text(x, y, show_val, ha='center', va='center', fontsize=10, color=txt_color)

# 坐标轴样式配置
ax.set_xlabel('观测时间')
ax.set_ylabel('观测高度 (m)')
# x轴时间格式化为 月/日 时:分
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d %H:%M'))
plt.xticks(rotation=45)
# 调整y轴范围,上下留边距避免边缘文本被截断
ax.set_ylim(df['high'].min() - 25, df['high'].max() + 25)
# 可选:添加浅网格辅助读数
ax.grid(alpha=0.3, linestyle='--')
# 自动调整布局避免标签重叠
plt.tight_layout()

plt.show()

常用调整项

  • 若需要标注温差值,直接把show_val的取值替换为f"{row['tempdiff']:.1f}"即可
  • 修改fontsize参数可以调整标注文字的大小
  • 修改figsize参数可以调整整图的宽高比例
  • 不需要颜色区分温差的话,删掉颜色判断逻辑,直接在ax.text里设置color='black'即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:51:19