Plot a histogram comparing int predictions vs true labels by class

    Args:
        Y_ph: An [n] or [n, 1] np.ndarray of predicted int labels
        Y: An [n] or [n, 1] np.ndarray of gold labels

def plot_predictions_histogram(Y_ph, Y, title=None):
    """Plot a histogram comparing int predictions vs true labels by class

    Args:
        Y_ph: An [n] or [n, 1] np.ndarray of predicted int labels
        Y: An [n] or [n, 1] np.ndarray of gold labels
    """
    labels = list(set(Y).union(set(Y_ph)))
    edges = [x - 0.5 for x in range(min(labels), max(labels) + 2)]

    plt.hist([Y_ph, Y], bins=edges, label=["Predicted", "Gold"])
    ax = plt.gca()
    ax.set_xticks(labels)
    plt.xlabel("Label")
    plt.ylabel("# Predictions")
    plt.legend(loc="upper right")
    if isinstance(title, str):
        plt.title(title)
    plt.show()