Мои метки x не отображаются на вспомогательных участках, хотя я явно дал команду matplotlib их рисовать.
Сначала я подозревал, что на других графиках их ярлыки скрыты на нижнем участке, поэтому яиспользовал plt.tight_layout (), чтобы добавить дополнительное пространство между вложенными участками, но я все еще не вижу свои метки x, только больше пробелов.Я подозреваю, что пробел скрывает мои метки, но я не уверен.
Если я транспонирую массив подзаголовков, метки появляются, но это нарушает требования, над которыми я работаю.
import datetime as dt
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
FOR = '15'
SAT = "J02"
ranges = np.array([[-1000, 1000], [-1000, 1000]])
Final= pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(30, ranges.shape[0])), columns=('In_Track','Cross_Track'))
LifeTime = pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(4000, ranges.shape[0])), columns=('In_Track','Cross_Track'))
Hundred = pd.DataFrame(np.random.uniform(ranges[:, 0], ranges[:, 1], size=(300, ranges.shape[0])), columns=('In_Track','Cross_Track'))
Final.insert(0, 'd', [dt.datetime(2001,9,11)]*len(Final))
LifeTime.insert(0, 'd', [dt.datetime(2001,9,11)]*len(LifeTime))
Hundred.insert(0, 'd', [dt.datetime(2001,9,11)]*len(Hundred))
ThreePanel, (ax1a, ax2a, ax3a) = plt.subplots(nrows=3, ncols=1, sharex=False, sharey=True, figsize=(10.8, 19.2), dpi=100)
datestring="02-29-2016"
ax1a.plot(range(1, 31), Final['In_Track'], 'b-*', label='inTrack')
ax1a.plot(range(1, 31), Final['Cross_Track'], 'r-*', label=' xTrack')
yrange = [-3000,3000]
ax1a.set_ylim(yrange)
ax1a.grid(True)
ax1a.set_ylabel('Angle ['+r'$\mu$'+ 'rad]')
ax1a.set_xlabel('FOR Scan Position')
ax1a.set_title('Geolocation Accuracy relative to VIIRS\nfor' + ' ' + SAT + ' on ' + datestring)
ax1a.legend(loc='best')
ax1b = ax1a.twinx() # mirror them
ax1b.set_ylim(np.array(yrange)/16808. * 100.)
ax1b.set_ylabel('Percentage of FOV Size [%]')#\nfootprint semiaxes ranges from 14x14km at FOR 15 to 48x24km at FORs 1 & 30')
ax1b.set_xlabel('FOR Scan Position')
LifeTime.plot(kind='line', y='In_Track', ax=ax2a)
LifeTime.plot(kind='line', y='Cross_Track', ax=ax2a)
ax2a.set_xlabel('Date')
yrange = [-3000, 3000]
ax2a.set_ylim(yrange)
ax2a.set_ylabel('Angle ['+r'$\mu$'+ 'rad]')
ax2a.grid(True)
ax2b = ax2a.twinx() #mirror yaxis
ax2b.set_ylim(np.array(yrange)/16808. * 100.)
ax2b.set_ylabel('Percentage of FOV Size [%]')
ax2b.axhline(y=10.7, c ='m', ls='--')
ax2b.axhline(y=-10.7, c ='m', ls='--')
DateDiff = '300 Days'
ax2a.set_title(DateDiff + ' of Geolocation Accuracy relative to VIIRS for FOR Scan Position: ' + FOR)
#ax3a = plt.subplot(3,1,3, sharex=None)
Hundred.plot(kind='line', y='In_Track', ax=ax3a)
Hundred.plot(kind='line', y='Cross_Track', ax=ax3a)
ax3a.set_xlabel('Date')
yrange = [-3000, 3000]
ax3a.set_ylim(yrange)
ax3a.set_ylabel('Angle ['+r'$\mu$'+ 'rad]')
ax3a.grid(True)
ax3b = ax3a.twinx() #mirror yaxis
ax3b.set_ylim(np.array(yrange)/16808. * 100.)
ax3b.set_ylabel('Percentage of FOV Size [%]')
DateDiff = '100 Days'
ax3a.set_title(DateDiff + ' of Geolocation Accuracy relative to VIIRS for FOR Scan Position: ' + FOR)
ThreePanel.tight_layout(pad=0.4, w_pad=0.5, h_pad=10)
outfilename = 'Reproducible.png'
plt.savefig(outfilename)
В моем приведенном выше воспроизводимом коде я установил явные метки x для каждого из 3 различных участков.Однако только самый нижний участок отображает свои метки x.