import matplotlib.pyplot as plt
import numpy as np

def plot_predictions_vs_labels(pred, label):
    """
    绘制预测值和实际值的坐标点。

    参数:
    pred (numpy.ndarray): 预测值的坐标数组，形状为 (n, 2)。
    label (numpy.ndarray): 实际值的坐标数组，形状为 (n, 2)。
    """
    # 提取 x 和 y 坐标
    pred_x, pred_y = pred[:, 0], pred[:, 1]
    label_x, label_y = label[:, 0], label[:, 1]

    ## 绘制label
    # 创建图形
    plt.figure(figsize=(10, 6))
    # 绘制实际值
    plt.plot(label_x, label_y, color='gray', label='Labels')
    # 添加标题和标签
    plt.title('Predictions vs Labels')
    plt.xlabel('X Axis')
    plt.ylabel('Y Axis')
    # 显示图形
    plt.show()

    ## 绘制pred+label
    # 创建图形
    plt.figure(figsize=(10, 6))
    # 绘制实际值
    plt.plot(label_x, label_y, color='gray', label='Labels')
    # 绘制预测值
    plt.plot(pred_x, pred_y, color='red', label='Predictions')
    # 添加标题和标签
    plt.title('Predictions vs Labels')
    plt.xlabel('X Axis')
    plt.ylabel('Y Axis')
    # 添加图例
    plt.legend()
    # 显示图形
    plt.show()


    ## 绘制pred+label  一维
    # 创建图形
    plt.figure(figsize=(10, 6))
    # x
    plt.subplot(2,1,1)
    # 绘制实际值
    plt.plot(label_x, color='gray', label='Labels')
    # 绘制预测值
    plt.plot(pred_x, color='red', label='Predictions')
    # y
    plt.subplot(2,1,2)
    # 绘制实际值
    plt.plot(label_y, color='gray', label='Labels')
    # 绘制预测值
    plt.plot(pred_y, color='red', label='Predictions')
    # 添加标题和标签
    plt.title('Predictions vs Labels')
    plt.xlabel('X Axis')
    plt.ylabel('Y Axis')
    # 添加图例
    plt.legend()
    # 显示图形
    plt.show()

    return


