首页 > 解决方案 > python 中的多个绘图会创建错误消息“无法重置轴”

问题描述

我正在尝试并排绘制两个图,比较训练集和测试集的 kappa。

这是制作这样一个情节的工作代码:

import matplotlib.pyplot as plt

def plotKappa(train_kappa,test_kappa):
    objects = ('train', 'test')
    y_pos = np.arange(len(objects))
    performance = [train_kappa,test_kappa]

    plt.bar(y_pos, performance, align='center', alpha=0.5)
    plt.xticks(y_pos, objects)
    plt.ylabel('kappa')
    plt.title('kappa training vs test')

plotKappa(0.9 ,0.2)

这导致了这个情节:

一个情节

我阅读了一些关于如何创建多个子图的内容,然后开始尝试并排制作两个图,但很快就意识到出了点问题。我收到错误消息“无法重置轴。您可能试图在多个不支持的轴中重新使用艺术家”

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

def plotKappa(ax,train_kappa,test_kappa):
    objects = ('train', 'test')
    y_pos = np.arange(len(objects))
    performance = [train_kappa,test_kappa]

    ax.bar(y_pos, performance, align='center', alpha=0.5)
    plt.xticks(y_pos, objects, axes=ax)
    plt.ylabel('kappa', axes=ax)
    plt.title('kappa training vs test', axes=ax)


plotKappa(ax1, 0.9 ,0.2)
plotKappa(ax2, 0.8 ,0.1)

标签: pythonmatplotlib

解决方案


没有这样的事情plt.xticks(..., axes=ax)。您可能打算使用

ax.set_xticks(y_pos, objects)
ax.set_ylabel('kappa')
ax.set_title('kappa training vs test')

反而。


推荐阅读