Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x Matplotlib时间轴(含连续小时数)_Python 3.x_Matplotlib - Fatal编程技术网

Python 3.x Matplotlib时间轴(含连续小时数)

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

我想以“%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.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()

太好了!谢谢你的快速回复。