我正试图绘制一个沿着时间轴的误差条图,理想情况下,误差上限/下限是可调的。我一直使用datetime.datetime数据类型来实现这一点,在我尝试使用matplotlib.pyplot.errorbar()实现误差条之前,它一直是可靠的。
import matplotlib.pyplot as plt
from datetime import datetime
import numpy as np
dates = [datetime(1950,2,2,12),datetime(1950,2,2,15)]
data = [1,2]
date_err = [[datetime(1950,2,2,11,30),datetime(1950,2,2,14,30)], #arbitrary random dates/times
[datetime(1950,2,2,12,30),datetime(1950,2,2,15,30)]]
test_err = [2,3]
fig, (ax1,ax2) = plt.subplots(2,1)
ax1.plot(dates,data,'k.')
ax1.tick_params(rotation = 45)
plt.subplots_adjust(hspace = 0.5)
ax2.errorbar(dates,data,xerr = test_err) #I tried both with date_err and test_err
ax2.errorbar(dates,data,xerr = date_err)
这给出了图:
我尝试使用列表形状(2,N),格式为[[low1,low2...lowN],[high1,high2...highN]],数据类型为datetime. datetime(),但收到错误:
TypeError:不受支持的操作数类型 *:'int'和'datetime. datetime'
当使用像test_err这样的整数/浮点数时,我得到错误:
TypeError:不支持+的操作数类型:'datetime. datetime'和'int'
有没有人能提出一种用日期/时间绘图的替代方法,或者一种沿着时间轴实现误差线的方法?谢谢你!
2条答案
按热度按时间kuarbcqp1#
您可以使用
timedelta
作为错误。我不知道你想要的错误是什么,但你可以很容易地调整它。u7up0aaq2#
我猜你想要
timedelta
:输出: