我试图重现下面的曲线from this paper:
该图显示了5次运行的平均准确度,垂直值显示了最小和最大准确度。
如何将这些具有特定值的垂直散点相加?
我的当前代码:
def plot_losses(losses: Dict[float, Dict[float, List[float]]]) -> None:
"""
Plot the evolution of the loss regarding the sparsity level and iteration step
Args:
losses (Dict[float, Dict[float, List[float]]]): Dict containing the losses regarding the sparsity level and iteration step
"""
plt.clf()
plt.figure(figsize=(20, 10))
plt.tight_layout()
sparsity_levels = [round(sparsity_level, 2) for sparsity_level in losses.keys()]
for sparsity_level, key in zip(sparsity_levels, losses.keys()):
plt.plot(list(losses[key].keys()), list(losses[key].values()), '+--', label=f"{100 - sparsity_level:.2f}%")
plt.show()
1条答案
按热度按时间tp5buhyn1#
首选
plt.errorbar
(而不是plot_losses
的 for 循环中的plt.plot
),并使用参数yerr
添加具有最小值和最大值的竖线。以下是一个示例:
这给出: