matplotlib 中没有注释

Annotation not happening in matplotlib

我有这样的数据

|               | FA1  | FA2  | FA3  |
|SS Loadings    | 1.6  | 1.3  | 0.58 |
|Proportion Var | 0.27 | 0.20 | 0.10 |

我正在尝试绘制图表,这是我正在使用的代码

import matplotlib.pyplot as plt

plt.scatter(data.T.index.values, data.T['Proportion Var'])
plt.plot(data.T.index.values, data.T['Proportion Var'])

for i, txt in enumerate(data.T['Proportion Var']):
    ax.annotate(txt, (data.T.index.values[i], data.T['Proportion Var'][i]))

plt.title('Proportional Var')
plt.xlabel('Factors')
plt.ylabel('Variance explained')
plt.grid()
plt.show()

此图没有注释。我查看了几个问题,看看我是否做错了什么,但我没能抓住它。感谢您的帮助!

您的变量 ax 未定义。您应该已经看到一条错误消息。如果要使用注解,必须定义:

fig, ax = plt.subplots()
ax.scatter(data.T.index.values, data.T['Proportion Var'])
ax.plot(data.T.index.values, data.T['Proportion Var'])

for i, txt in enumerate(data.T['Proportion Var']):
    ax.annotate(txt, (data.T.index.values[i], data.T['Proportion Var'][i]))

ax.set_title('Proportional Var')
ax.set_xlabel('Factors')
ax.set_ylabel('Variance explained')
plt.grid()
plt.show()