旧版 python 和 matplotlib 的教程包含如下代码:
def graphRawFX ():
date,bid,ask = np.loadtxt('GBPUSD1d.txt',
unpack=True,
delimiter=',',
converters={0:mdates.strpdate2num('%Y%m%d%H%M%S')})
fig = plt.figure(figsize=(10,7))
ax1 = plt.subplot2grid((40,40),(0,0), rowspan=40,colspan=40)
ax1.plot(date,bid)
ax1.plot(date,ask)
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))
plt.grid(True)
plt.show()
graphRawFX()
运行代码时出现以下错误:
strpdate2num 类在 Matplotlib 3.1 中已弃用,并将在 3.3 中删除。使用 time.strptime 或 dateutil.parser.parse 或 datestr2num 代替。
converters={0:mdates.strpdate2num('%Y%m%d%H%M%S')})
以下是一行数据以获取更多信息:
20130501000000,1.55358,1.55371
那么如何使用 matplotlib 3.1 将该字符串转换为日期呢?
我认为警告要求您做的是使用 time.strptime 函数将字符串转换为时间。您可能想要更改第一行。
import time
date,bid,ask =np.loadtxt('GBPUSD1d.txt',unpack=True,delimiter=',',converters={0:time.strptime(mdates,'%Y%m%d%H%M%S')})
根据错误/警告和给出的成本,这是我所能看到的。
经过交谈,我意识到 mdates 实际上是一个 matplotlib 模块。因此建议改变。请尝试一下。
date,bid,ask = np.loadtxt('GBPUSD1d.txt', unpack=True, delimiter=',', converters={0: lambda x: mdates.datestr2num(x.decode('utf8'))})
希望这会奏效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句