【发布时间】:2017-04-22 22:43:21
【问题描述】:
我非常接近最终完成我的卷积神经网络项目,但我很难尝试显示一个显示给定新交通标志图像的前 k 个分类概率的图。我想在左侧显示概率的散点图,在右侧显示相关图像。这是我定义的函数:
def plot_probability_per_class(probabilities, classes, image):
figure = plt.figure()
figure.subplots_adjust(right=1.5, hspace=0.5)
subplot = figure.add_subplot(1,2,1)
subplot.set_title('Probability per class')
plt.plot(classes, probabilities, 'ro')
plt.ylabel('Probability')
plt.xlabel('Class ID')
subplot = figure.add_subplot(1,2,2)
subplot.set_title('Image')
plt.imshow(image)
plt.show()
以下是生成的图形示例:
当我问的时候,有人能告诉我如何在散点图的右侧(或下方)放置一个图例以显示类 ID 的描述。类似于以下内容:
- = 限速(20 公里/小时)
- = 限速(30 公里/小时)
- = 限速 (50km/h)
- = 限速(60 公里/小时)
- = 限速 (70km/h)
- = 限速(80 公里/小时)
- = 限速结束 (80km/h)
- = 限速 (100km/h)
- = 限速 (120km/h)
- = 没有通过
- = 超过 3.5 公吨的车辆禁止通行
我对 Matplotlib 很陌生,我发现 API 文档很难阅读。任何帮助将不胜感激。
【问题讨论】:
-
你为什么使用:
figure.subplots_adjust(right=1.5, hspace=0.5)? -
不确定图例问题。通常你可以做
plt.plot(x, y, 'r', label = 'Red')。然后你会做plt.legend(loc='lower right')。如果我知道这些速度在哪里被引用,我可以提供更多帮助,但我在代码和你的图中都没有看到它们。 -
@wflynny 删除该行就可以了。我想我从另一个用来绘制数据的函数中复制并粘贴了那条线。谢谢!顺便说一句,你能告诉我如何添加图例吗?
-
@wflynny 这可能有点矫枉过正。只需在某处放置带有这些行的text box 就足够了。
subplot.text(0.99,0.99, "1. Speed limit (20km/h)\n2. Speed limit (30km/h)", transform=subplot.transAxes, ha="right", va="top", fontsize=8, bbox={'facecolor':'w', 'alpha':0.5, 'pad':10})(行可以用\n分隔)
标签: python image matplotlib subplot