Я пытаюсь прочитать изображение в формате TIFF (иногда PNG), используя matplotlib и создавая класс, чтобы иметь возможность читать и наносить на карту несколько изображений, связанных с объектом.Код внутри определения класса сейчас не важен.
Но у меня есть один вопрос.Когда я включаю последний параграф в код перед определением класса, я могу прочитать и показать изображение, но когда я включаю его после определения класса, оно не работает.Может ли кто-нибудь помочь мне понять, почему это происходит?
Я пробовал это с одним и несколькими изображениями
import matplotlib.pyplot as plt
import numpy as np
import math
import random
from matplotlib.ticker import FormatStrFormatter
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd
import matplotlib.image as mpimg
fig,line,labels,ax={},{},[50],{}
X=[3000]
Y=[3000]
Z=[3000]
titles=r'microscopy'
class plotter:
def figures(self, heading, titles, ax, fig, style, lxlim, uxlim, lylim, uylim, xlabel, ylabel):
self.heading=heading
self.titles=titles
self.ax=ax
self.fig=fig
self.style=style
plt.style.use(self.style)
self.fig=plt.figure(self.heading)
self.ax=self.fig.add_subplot(111)
self.lxlim=lxlim
self.uxlim=uxlim
self.lylim=lylim
self.uylim=uylim
self.ax.set_xlabel(xlabel)
self.ax.set_ylabel(ylabel)
self.ax.grid(True)
#self.ax.grid(False)
self.ax.set_xlim([lxlim, uxlim])
self.ax.set_ylim([lylim, uylim])
self.ax.set_title(self.titles,style='italic')
#self.ax.xaxis.set_minor_formatter(FormatStrFormatter("%.2f"))
self.ax.xaxis.set_major_locator(plt.MultipleLocator(50))
self.ax.xaxis.set_major_locator(plt.MaxNLocator(12))
self.ax.yaxis.set_major_locator(plt.MaxNLocator(10))
self.ax.xaxis.set_minor_locator(plt.MultipleLocator(10))
#self.ax.invert_yaxis()
#self.ax.xaxis.tick_top()
#self.ax.xaxis.set_ticks_position('top')
#self.ax.tick_params(labelbottom='off',labeltop='on')
#column_labels = list('ABCD')
#row_labels = list('WXYZ')
#self.ax.set_xticklabels(column_labels, minor=False)
#self.ax.set_yticklabels(row_labels, minor=False)
#self.ax.xaxis.set_major_locator(plt.NullLocator())
#self.ax.yaxis.set_major_locator(plt.NullLocator())
#self.ax.xaxis.set_major_formatter(plt.NullFormatter())
#ticks=np.linspace(200,700,26,endpoint=False)
#ax.tick_params(axis='x', which='minor', bottom=True)
#self.ax.set_xticks(ticks,minor=True)
#self.fig.savefig('figure.png', bbox_inches='tight')
styler = dict(size=11, color='brown')
spectra=plotter()
spectra.figures('Fibres', 'Fibres', ax, fig, 'classic', None, None, None,None,None,None)
image1=mpimg.imread('geter.png')
imgplot = plt.imshow(image1)
#spectra.ax.imshow(image1)
plt.show()
#spectra.ax.axis('off')
Когда я включаю последний абзац перед определением класса, это дает право читатьданные изображения, но когда они идут после определения класса (как показано в коде сейчас), я просто получаю изображение с осями и простым желтым цветом.Я не могу понять почему.Мое изображение - это просто скриншот расположения папок.Сейчас я еще не связывал оси объекта с отображением изображения, так как определение моего класса не завершено.Но я хочу знать, почему это происходит.
2) И второе: когда я использую
spectra.ax.imshow(....)
вместо
plt.imshow(....)
Кодне работает и дает тот же желтый оттенок изображения.