繁体   English   中英

未知字符串格式 - Matplotlib 绘图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM