Два графика должны быть плотно прилегают к окну рисунка, чтобы ось даты отображалась соответствующим образом с меткой x.Я пробовал plt.subplots_adjust(..)
, но в этом случае изменения будут применены только на одном участке.Другое решение, которое я пробовал fig1.tight_layout()
, но оно не сработало.
Код:
import numpy as np
import matplotlib.pyplot as plt
import time
from datetime import datetime, timedelta
import matplotlib.dates as mdates
EQ = {'2017-08-23 02:04:00':(18,1),'2017-08-23 02:05:00':(20,2),'2017-08-23 02:06:00':(12,3),'2017-08-23 02:07:00':(22,4)}
LIST_P1=[];LIST_P2=[];Time_P=[]
for j_p in EQ.keys():
LIST_P1.append(EQ[j_p][1])
LIST_P2.append(EQ[j_p][0])
Time_P.append(time.mktime(time.strptime(j_p, "%Y-%m-%d %H:%M:%S")))
dateconv=np.vectorize(datetime.fromtimestamp)
Date_F1=dateconv(Time_P)
fig1 = plt.figure(1)
ax1 = plt.gca()
ax1.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d %H:%M:%S"))
ax1.plot_date(Date_F1,LIST_P1,'g-')
ax1.set_ylabel('Y-axis',fontsize=14)
ax1.set_xlabel('X-axis',fontsize=14)
ax1.grid(True)
for label in ax1.xaxis.get_ticklabels():
label.set_rotation(45)
fig2 = plt.figure(2)
ax2 = plt.gca()
ax2.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d %H:%M:%S"))
ax2.plot_date(Date_F1,LIST_P2,'g-')
ax2.set_ylabel('Y-axis',fontsize=14)
ax2.set_xlabel('X-axis',fontsize=14)
ax2.grid(True)
for label in ax2.xaxis.get_ticklabels():
label.set_rotation(45)
plt.subplots_adjust(left = 0.07,right=0.985,bottom=0.16,top=0.955,hspace=0.200,wspace=0.200)
plt.show()
Графики должны выглядеть следующим образом:

