python - 如何将图例放在情节中的点中?
问题描述
大家好,我有下一个关于 matplotlib 中图例的问题:
我的代码如下:
x=[1,2,3,-4,-5]
y=[5,-3,6,7,-2]
plt.plot([x],[y], marker='o', markersize=6, color="green")
plt.grid()
plt.axhline(y=0.0,color='black',alpha=0.3)
plt.axvline(x=0.0,color='black',alpha=0.3)
plt.xlim(-7,7)
plt.ylim(-9,9)
plt.show()
情节是:
现在我想在这个图像中的每个点上放一些标签,例如:
这可能吗?在此先感谢您的帮助。
解决方案
使用plt.annotate:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=2)
ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05),
)
ax.set_ylim(-2,2)
plt.show()
您可以省略箭头并通过使用arrowprops
参数来更改它的属性。
对于多个点,只需循环:
for label, x, y in zip(labels, data[:, 0], data[:, 1]):
plt.annotate(
label,
xy=(x, y), xytext=(-20, 20),
textcoords='offset points', ha='right', va='bottom',
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))
推荐阅读
- angular - 如何从另一个组件重新加载数据?
- pandas - 填充缺失值,而 colume 在 Pandas 中具有非数字值
- python - Django TypeError 对象不可迭代
- reactjs - React Date-Picker 不接受日期
- javascript - 功能完成后插入 HTML 的文本消失
- python - 使用 Python 修改 reStructuredText (reST) 文档
- java - 根据配置文件禁用 Spring 注解
- c# - C# - 不向第一个空数组的索引添加元素
- swift - OS X 10.14 中不推荐使用状态项弹出菜单
- python - 运行脚本时格式字符串的参数不足