[英]unknown string format - Matplotlib plotting
我想使用 matplotlib 获取 plot 股票价格数据。 数据在 txt 文件中(也尝试使用 csv 文件)。 运行代码时出现错误:未知字符串格式:%Y-%m-%d。
这是数据的日期格式。 我究竟做错了什么? 在代码下方:
def graphdata(stock):
try:
stock_file = stock+'.txt'
date, openp, highp, lowp, closep, volume = np.loadtxt(stock_file, delimiter=',', unpack=True,
converters={ 0: mdates.datestr2num('%Y-%m-%d')})
fig = plt.figure()
ax1 = plt.sulplot(1,1,1)
ax1.plot(date, openp)
ax1.plot(date, highp)
ax1.plot(date, lowp)
ax1.plot(date, closep)
plt.show()
except Exception as e:
print(str(e), 'failed main loop')
for stock in each_stock:
graphdata(stock)
time.sleep(600)
例如,AAPL 的数据如下所示:
2020 年 4 月 14 日 70 72.0625 69.51249695 71.76249695 194994800
2020 年 4 月 15 日 70.59999847 71.58249664 70.15750122 71.10749817 131154400
2020 年 4 月 16 日 71.84500122 72.05000305 70.58750153 71.67250061 157125200
2020 年 4 月 17 日 71.17250061 71.73750305 69.21499634 70.69999695 215250000
2020 年 4 月 20 日 69.48750305 70.41999817 69.21250153 69.23249817 130015200
2020 年 4 月 21 日 69.06999969 69.3125 66.35749817 67.09249878 180991600
我建议使用 pandas 来读取这些逗号分隔的文件。
import pandas as pd
import matplotlib.pyplot as plt
def graphdata(stock):
try:
stock_file = stock+'.txt'
df = pd.read_csv(stock_file, header=None, names=['date', 'openp', 'highp', 'lowp', 'closep', 'volume'])
df['date'] = pd.to_datetime(df['date'])
df.plot(x='date', y=['openp', 'highp', 'lowp', 'closep'])
plt.show()
except Exception as e:
print(str(e), 'failed main loop')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.