Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Matplotlib绘制X轴图_Python_Python 3.x_Matplotlib - Fatal编程技术网

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)