内容
我先用了tushare获取股票的日线数据,
然后用plotly画k线图和折线图。
示例如下
import plotly.graph_objects as go
import tushare as ts
import pandas as pd
from datetime import datetime
# 设置token并初始化pro接口
tk = ts.set_token('你的token')
pro = ts.pro_api()
# 查询日线数据
df = pro.query('daily', ts_code='600895.SH', start_date='20230401', end_date='20240830')
# 确保trade_date列转换为datetime对象
df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')
# 新增一列,将日期格式化为YYYY-MM-DD
df['formatted_date'] = df['trade_date'].dt.strftime('%Y-%m-%d')
# 绘制K线图,设置中国标准的颜色(上涨红色,下跌绿色)
fig = go.Figure(data=[go.Candlestick(x=df['formatted_date'],
open=df['open'],
high=df['high'],
low=df['low'],
close=df['close'],
increasing_line_color='red', # 上涨红色
decreasing_line_color='green') # 下跌绿色
])
fig.show()
一些问题
- 使用plotly画图的时候,横坐标date尽量换成datetime对象,不然画出来很丑。
- 因为plotly是国外开发的,所以k线涨跌颜色和国内是反的,需要手动调整。
最终画出来是这样的
单个k柱时刻具体焦点访问的
折线图的示例
# Using graph_objects
import plotly.graph_objects as go
import pandas as pd
fig = go.Figure([go.Scatter(x=df['formatted_date'], y=df['high'])])
fig.show()