通过web API获取股票aaa
:
import requests,json,time
import pandas as pd
from pandas import json_normalize
ticker = 'aaa'
start_date='2020-01-01'
end_date='2023-05-10'
fd = int(time.mktime(time.strptime(start_date, "%Y-%m-%d")))
td = int(time.mktime(time.strptime(end_date, "%Y-%m-%d")))
data = requests.get('https://apipubaws.tcbs.com.vn/stock-insight/v1/stock/bars-long-term?ticker={}&type=stock&resolution=D&from={}&to={}'.format(ticker, fd, td)).json()
df = json_normalize(data['data'])
df['tradingDate'] = pd.to_datetime(df.tradingDate.str.split("T", expand=True)[0])
df.columns = ['open', 'high', 'low', 'close', 'volume', 'date']
准备用于绘图的x,y数据:
x = df['date'][0:30]
y = df['close'][0:30]
绘制图表:
plt.plot(x,y)
plt.xticks(rotation=90)
plt.show()
原始数据(x,y)中有30个日期,plt.show()
只画出部分日期,如何在x轴上画出全部30个日期?
>>> min(x)
Timestamp('2020-01-02 00:00:00')
>>> max(x)
Timestamp('2020-02-19 00:00:00')
>>> len(x)
30
我想写下从2020-01-02
到2020-02-19
的每个日期,在x轴上显示30个日期。
2条答案
按热度按时间yduiuuwa1#
将时间戳转换为字符串并提取
xxxx-xx-xx
的一部分。q5iwbnjs2#
如果您希望显示每个日历日期,您可以在底部添加这些行。这将显示每个日历日期(50个条目)...
但是,如果您只想查看
x
中有数据的日期,则需要在plt.show()
之前添加此行沿着上面的代码。这将显示30个条目……