import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

绘制TI折线图

在这里插入图片描述

def draw_TI(df_TI_night, output_TI_png, sector_id, terrain, label):
    """
    
    Args:
        df_TI_night: datafrmae
        output_TI_png: 图片保存路径
        sector_id: 1,2等,任意
        terrain: 地形
        label: day or night

    Returns:

    """
    # 绘制折线图
    plt.figure(figsize=(10, 6))
    # fig, ax = plt.subplots(figsize=(10, 6))
    colors = ['royalblue', 'red', 'limegreen', 'mediumpurple', 'cyan', 'darkorange']
    for i, category in enumerate(df_TI_night.columns[:6]):
        plt.plot(df_TI_night.index[:29], df_TI_night[category].values[:29], label=f'类别{i}', color=colors[i], marker='.')

    plt.xlabel('风速(m/s)', fontsize=11)
    plt.ylabel('TI值', fontsize=11)
    plt.title(f'区域{sector_id}-{terrain}不同类别TI分布({label})')
    plt.legend()
    # 设置x轴刻度间隔为2
    plt.xticks(df_TI_night.index[:29][::2])
    df_max = round(df_TI_night.iloc[:29, :].max().max(), 1)
    if df_max <= 0.3:
        ylim = 0.3
    else:
        ylim = df_max
    # 显示图形
    plt.ylim(0, ylim)
    plt.savefig(output_TI_png)  # 将图片保存为 output.png 文件

绘制

def draw_day_night(normalized_table, output_day_night_png, sector_id, terrain):
    # 假设 normalized_table 是包含了每行的占比的 DataFrame

    normalized_table_T = normalized_table.T
    # 绘制折线图
    plt.figure(figsize=(10, 6))
    colors = ['c', 'k']  # 设定标签颜色,将'k'(黑色)用于night对应的类别
    for i, category in enumerate(normalized_table_T.index):
        plt.plot(normalized_table_T.columns, normalized_table_T.loc[category], label=category, color=colors[i],
                 marker='.')

    plt.xlabel('风廓线类别', fontsize=11)  # 在这里修改x轴标题
    plt.ylabel('占比(%)', fontsize=11)
    plt.title(f'区域{sector_id}({terrain})不同类别风廓线昼夜分布')

    # 显示标签
    for category in normalized_table_T.index:
        for i, value in enumerate(normalized_table_T.loc[category]):
            plt.text(i, value, f'{value:.2f}', ha='center', va='bottom', fontsize=10,
                     color=colors[normalized_table_T.index.get_loc(category)])
    # 显示图例
    plt.legend()
    # 设置y轴范围为10%
    plt.ylim(0, 100)
    plt.savefig(output_day_night_png)  # 将图片保存为 output.png 文件
    plt.close()
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐