matplotlib 中未发生注释
Posted
技术标签:
【中文标题】matplotlib 中未发生注释【英文标题】:Annotation not happening in matplotlib 【发布时间】:2022-01-16 16:20:50 【问题描述】:我有这样的数据
| | 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()
此图没有注释。我查看了几个问题,看看我是否做错了什么,我没能抓住它。任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:您的变量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()
【讨论】:
谢谢。这就是问题所在。而且,这很奇怪!我根本没有收到错误消息。 我有一个后续问题。有没有办法可以移动我的注释,使它们不直接位于散点上方? 您可以随意调整它们的坐标。以上是关于matplotlib 中未发生注释的主要内容,如果未能解决你的问题,请参考以下文章
%Matplotlib - AttributeError: 'NoneType' 对象没有属性 'lower'