Python 3.x Matplotlib时间轴(含连续小时数)
我想以“%H:%M”的方式格式化我的x轴,但要使用连续小时(例如2天=48:00),如本例所示: 我多么想要它 我能做的最接近的尝试是这个例子: 怎么样 但时间不会继续。 以下是我的简单代码片段:Python 3.x Matplotlib时间轴(含连续小时数),python-3.x,matplotlib,Python 3.x,Matplotlib,我想以“%H:%M”的方式格式化我的x轴,但要使用连续小时(例如2天=48:00),如本例所示: 我多么想要它 我能做的最接近的尝试是这个例子: 怎么样 但时间不会继续。 以下是我的简单代码片段: import matplotlib.pyplot as plt import matplotlib.dates as md import numpy as np dataY = np.array([0,1,2,3,4,5,6,7,8,9]) dataX = np.array([0.1,0.5,0
import matplotlib.pyplot as plt
import matplotlib.dates as md
import numpy as np
dataY = np.array([0,1,2,3,4,5,6,7,8,9])
dataX = np.array([0.1,0.5,0.8,1.2,1.3,1.6,1.9,2.1,2.2,2.5]) #Time values like in Excel 1h = 1/24
dataX = dataX +1 #Otherwise it says Error, time values <1
fig, ax = plt.subplots()
timeformat = md.DateFormatter('%H:%M')
plt.Axes.format_xdata = timeformat
ax.xaxis_date()
ax.xaxis.set_major_formatter(timeformat)
plt.xlim(1,4)
plt.plot(dataX,dataY)
plt.ylabel('Y-Values')
plt.xlabel('Time [hh:mm]')
plt.show()
导入matplotlib.pyplot作为plt
将matplotlib.dates作为md导入
将numpy作为np导入
dataY=np.数组([0,1,2,3,4,5,6,7,8,9])
dataX=np.数组([0.1,0.5,0.8,1.2,1.3,1.6,1.9,2.1,2.2,2.5])#类似Excel 1h的时间值=1/24
dataX=dataX+1#否则它表示错误,时间值这里没有绘制任何实际日期。因此,不尝试将这些值格式化为日期是有意义的。相反,按原样绘制数字,并使用您选择的自定义格式
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import numpy as np
dataY = np.array([0,1,2,3,4,5,6,7,8,9])
dataX = np.array([0.1,0.5,0.8,1.2,1.3,1.6,1.9,2.1,2.2,2.5]) #Time values 1h = 1/24
fig, ax = plt.subplots()
def timeformat(x,pos=None):
h = int(x*24.)
m = int((x*24.-h)*60)
return "{:02d}:{:02d}".format(h,m)
ax.xaxis.set_major_formatter(mticker.FuncFormatter(timeformat))
plt.plot(dataX,dataY)
plt.ylabel('Y-Values')
plt.xlabel('Time [hh:mm]')
plt.show()
太好了!谢谢你的快速回复。