Можно использовать axes.get_legend_handles_labels
для получения описаний дескрипторов и меток от одного объекта axes
и использовать их для добавления их к осям на другом рисунке.
# create a figure with one subplot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3,4,5], [1,2,3,4,5], 'r', label='test')
# save it *without* adding a legend
fig.savefig('image.png')
# then create a new image
# adjust the figure size as necessary
figsize = (3, 3)
fig_leg = plt.figure(figsize=figsize)
ax_leg = fig_leg.add_subplot(111)
# add the legend from the previous axes
ax_leg.legend(*ax.get_legend_handles_labels(), loc='center')
# hide the axes frame and the x/y labels
ax_leg.axis('off')
ax_leg.savefig('legend.png')
Если по какой-то причине вы хотите скрыть только метку осей, вы можете использовать:
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
или если по какой-то странной причине вы хотите скрыть рамку осей, но не эти метки вы можете использовать:
ax.set_frame_on(False)
ps: этот ответ был адаптирован из моего ответа на дублирующий вопрос