首页 > 解决方案 > 如何使用 python 在折线图中显示超过 50% 准确度的标签?

问题描述

fig = plt.figure(figsize=[5, 5])
plt.plot(data["recall"])
plt.title('256 Classes Performance')
plt.xlabel('class')
plt.ylabel('Accuracy Rate')
plt.show()

在此处输入图像描述 在此处输入图像描述

图 1 是我的图,图 2 是我想要的,我想为那些准确率超过 50% 的类添加标签,包括折线图中显示的类号和准确率

标签: python

解决方案


您可以使用ax.annotate和的组合ax.scatterxytext你可以移动文本(参见matplotlib.pyplot.annotate

import matplotlib.pyplot as plt
import numpy as np
from numpy.lib.financial import pmt

y_vals = np.random.rand(50)
x_vals = np.arange(50)
annotations = [f'{y:.1f}' if y >= 0.5 else '' for y in y_vals]
dots = [y if y >= 0.5 else 9999.0 for y in y_vals]

fig, ax = plt.subplots(figsize=(5, 4))

ax.set_ylim(-0.1, 1.1)
ax.plot(x_vals, y_vals)
ax.scatter(x_vals, dots, color='red')
for x, y, text_val  in zip(x_vals, y_vals, annotations):
    ax.annotate(
        text_val,
        xy=(x, y),
    )

plt.show()

在此处输入图像描述


推荐阅读