我正在尝试绘制水平条形图,其中条形图表示随后的时间间隔。到目前为止,这是我的方法:
import matplotlib.pyplot as plt
import numpy as np
date1 = np.datetime64('2014-12-31')
date2 = np.datetime64('2014-10-30')
fig = plt.figure( figsize=(12,8) )
ax1 = fig.add_subplot( 111 )
# make horizontal bar plot
ax1.barh( 1., width=(date1-date2), height=.3, left=date1, align='center' )
plt.show()
Matplotlib不喜欢这样。这是我收到的错误消息:
TypeError: ufunc add cannot use operands with types dtype('float64') and dtype('<m8[D]')
像matplotlib这样的声音对于时间间隔被用作条的宽度感到不满意。有什么提示让Matplotlib再次开心吗?
我正在使用numpy 1.15.1
和matplotlib 2.2.3
。
答案 0 :(得分:0)
您是否正在寻找类似的东西?不太清楚您希望如何达到特定的时间戳记点。
width = (date1-date2) / np.timedelta64(1, 'D')
ax1.barh(1., width=width, align='center')
ax1.set_xticklabels([date2 + np.timedelta64(x, 'D') for x in range(1, int(width)+1)])
plt.show()