Python 使用Matplotlib绘制X轴图
代码运行正常,但在Python 使用Matplotlib绘制X轴图,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,代码运行正常,但在X轴上日期未完全显示,如字典中所述(它仅在绘图上显示小时:分钟:秒) 如何显示完整的日期(年:月:日小时:分钟:秒) 代码: import numpy as np import matplotlib.pyplot as plt import time from datetime import datetime, timedelta EQ = {'2017-08-23 02:04:00':(18,1),'2017-08-23 02:05:00':(20,2),'2017-08-
X轴上
日期未完全显示,如字典中所述(它仅在绘图上显示小时:分钟:秒
)
如何显示完整的日期(年:月:日小时:分钟:秒
)
代码:
import numpy as np
import matplotlib.pyplot as plt
import time
from datetime import datetime, timedelta
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_P=[];Time_P=[]
for j_p in EQ.keys():
LIST_P.append(EQ[j_p][1])
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.plot_date(Date_F1,LIST_P,'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)
plt.show()
您需要添加
ax1.xaxis.set\u major\u格式化程序(mdates.DateFormatter(“%Y-%m-%d%H:%m:%S”)
以指定格式。
考虑下面的代码:
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_P=[];Time_P=[]
for j_p in EQ.keys():
LIST_P.append(EQ[j_p][1])
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_P,'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)
plt.show()
输出:
我建议使用matplotlib.dates的DateFormatter,添加以下内容: 1) 一开始: 从matplotlib.dates导入日期格式化程序 2) ax1.plot_日期之前: myFmt=DateFormatter(“%Y-%m-%d%H:%m:%S”) ax1.xaxis.set\u major\u格式化程序(myFmt)