Давайте попробуем понять, что происходит, и помочь вам улучшить способ создания ваших графиков в будущем.
Линия
fig, axes = plt.subplots(1,2,figsize=(18,6))
создает два объекта (все в Python является объектом): объект matplotlib.pyplot.Figure
и список, содержащий два объекта matplotlib.pyplot.Axes
. Когда вы затем сделаете что-то вроде plt.title('Original Data', size=(20))
, matplotlib
добавит этот заголовок к тому, что он считает текущим Axes
объектом - так как вы не сказали matplotlib, что это за объект, он будет Предположим, что это первый в массиве, который он только что создал. Если вы не укажете обратное (с помощью plt.sca()
, но есть лучший способ), всегда примет это, а последующие вызовы plt.title()
перезапишут предыдущее значение.
Чтобы исправить это, используйте встроенные методы непосредственно для объектов Axes
. Вы можете получить к ним доступ, проиндексировав список axes
:
fig, axes = plt.subplots(1,2,figsize=(18,6))
#Original data
df_codes.loc[:,float_cols_gb].T.plot(ax=axes[0])
axes[0].title('Original Data', size=(20))
axes[0].set_ylabel('Reflectence', size=(14))
axes[0].set_xlabel('Wavelength', size=(14))
axes[0].set_xlim(410,1004)
#filter data
df_bl_codes.loc[:,float_cols_bl].T.plot(ax=axes[1])
axes[1].set_title( 'Filter', size=(20))
axes[1].set_ylabel('Reflectence', size=(14))
axes[1].set_xlabel('Wavelength', size=(14))
axes[1].set_xlim(410,1004)