Мне нужно получить данные XY из объекта fig с двумя подзаголовками.
Вот как я сделал объект fig:
f, axarr = plt.subplots(1,2)
axarr[0].imshow(labels_map,vmax=28)
axarr[1].imshow(Y_predictions,vmax=28)
np.save('fig.npy', f)
Я не могу переделать фиговые объекты, потому что у меня больше нет доступа к машине.
из предыдущего поста stackoverflow:
fig = numpy.load("fig.npy").item()
ax = fig.gca()
xy_data = ax.get_lines()
print(xy_data[0])
печать не удалась: "индекс списка вне допустимого диапазона"
Мне нужно получить массив 2d для обоих подзаголовков, чтобы создать матрицу путаницы.
Попробуйте следующее
xy_data = ax.get_lines()[0].get_data()
print (xy_data)
@Paku: извините, проверьте правку. я писала с телефона
xy_data = ax.get_lines()[0].get_data() IndexError: индекс списка вне допустимого диапазона
xy_data = ax.get_lines().get_data() AttributeError: объект 'silent_list' не имеет атрибута 'get_data'
@Paku Что ты получаешь, когда делаешь len(ax.get_lines())
У моих подзаголовков были не линии, а изображения: () Мне нужно было больше читать документацию по осям.
У вас нет линий на ваших графиках; но изображения. Следовательно,
import matplotlib.pyplot as plt
import numpy as np
f, axarr = plt.subplots(1,2)
axarr[0].imshow(np.random.randint(0,28, (10,10)),vmax=28)
np.save('fig.npy', f)
plt.close()
fig = np.load("fig.npy").item()
data = fig.axes[0].images[0].get_array()
print(data)
Также теперь я чувствую себя глупо из-за того, что сам не нашел его в документации. Настоящий момент RTFM.
Результат: <список из 0 объектов Line2D>