目标跟踪雷达图绘制
最近主要进行论文绘制,使用语言为python,所以很多结果都需要找,很多图也需要学怎样绘制,今天就分享一样适用于VOT数据集系列的雷达图的绘制。(曲线图以及多算法比较框图的绘制请看上一个帖子)
一、使用工具包
pysot-tookit即可。
二、需要更改代码
这里需要感谢一下@回忆浅离 博主的分享,我直接贴图,需要更改的地方已做好注释。
三、雷达图效果
ps:在论文中如果需要绘制分类或回归的热力图,直接matplotlib输出即可。如果想要绘制附带原图的热力图,需要将原图作为底图进行加载,与热力图粘在一块进行输出。如果想要绘制跟踪器的热力图,请关注@回忆浅离的SiamCAR热力图绘制的帖子。
如果大家有python绘制EAO的代码,还请私信或评论区分享,感谢!
2022.12.15雷达图样式更新
将draw_eao.py中的draw_eao函数的最后部分进行如下修改(有新增及注释)
def draw_eao(result):
fig = plt.figure(figsize=(7, 8)) # 设置图片size,可取消
ax = fig.add_subplot(111, projection='polar')
angles = np.linspace(0, 2 * np.pi, 8, endpoint=True)
attr2value = []
for i, (tracker_name, ret) in enumerate(result.items()):
value = list(ret.values())
attr2value.append(value)
value.append(value[0])
attr2value = np.array(attr2value)
max_value = np.max(attr2value, axis=0)
min_value = np.min(attr2value, axis=0)
for i, (tracker_name, ret) in enumerate(result.items()):
value = list(ret.values())
value.append(value[0])
value = np.array(value)
value *= (1 / max_value)
plt.plot(angles, value, linestyle='-', color=COLOR[i], marker=MARKER_STYLE[i],
label=tracker_name, linewidth=1.5, markersize=6)
attrs = ["Overall", "Camera motion",
"Illumination change", "Motion Change",
"Size change", "Occlusion",
"Unassigned"]
attr_value = []
for attr, maxv, minv in zip(attrs, max_value, min_value):
attr_value.append(attr + "\n({:.3f},{:.3f})".format(minv, maxv))
# 显示overall等信息
ax.set_thetagrids(angles[:-1] * 180 / np.pi, attr_value)
ax.spines['polar'].set_visible(False) # 最外圈不显示 (0.5, -0.07)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.07), frameon=False, ncol=5) # bbox_to_anchor=(0.5, -0.07),
ax.grid(b=True, c='gray', linestyle='--') # 显示网格
# ax.set_ylim(0, 1.05) # 设置y轴最大值
ax.tick_params('y', labelleft=False) # 仅取消刻度显示
# ax.set_yticks([]) # 取消同心圆背景以及刻度显示
plt.show()
更新后的效果如下: