任务:获取贵州茅台的近几个月的价格数据,绘制k线图;
在deepseek中输入提示词:
你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下:
用AKShare库获取股票贵州茅台(股票代码:600519)在2024年3月7日到2024年6月5日期间的历史行情数据-前复权。
然后用pyecharts绘制K线图;
注意:
每一步都要输出信息到屏幕上
日期格式是YYYYMMDD
AKShare库使用示例:
接口: stock_zh_a_hist
目标地址: https://quote.eastmoney.com/concept/sh603777.html?from=classic(示例)
输入参数
名称类型描述
symbolstrsymbol='603777'; 股票代码可以在 ak.stock_zh_a_spot_em() 中获取
periodstrperiod='daily'; choice of {'daily', 'weekly', 'monthly'}
start_datestrstart_date='20210301'; 开始查询的日期
end_datestrend_date='20210616'; 结束查询的日期
adjuststr默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
timeoutfloattimeout=None; 默认不设置超时参数
接口示例-历史行情数据-前复权
import akshare as ak
stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20170301", end_date='20240528', adjust="qfq")
print(stock_zh_a_hist_df)
输出参数-历史行情数据
名称类型描述
日期object交易日
股票代码object不带市场标识的股票代码
开盘float64开盘价
收盘float64收盘价
最高float64最高价
最低float64最低价
成交量int64注意单位: 手
成交额float64注意单位: 元
振幅float64注意单位: %
涨跌幅float64注意单位: %
涨跌额float64注意单位: 元
换手率float64注意单位: %
源代码:
import akshare as ak
from pyecharts.charts import Kline
from pyecharts import options as opts
# 获取股票历史行情数据
def get_stock_data(symbol, period, start_date, end_date, adjust):
stock_hist_df = ak.stock_zh_a_hist(
symbol=symbol,
period=period,
start_date=start_date,
end_date=end_date,
adjust=adjust
)
print("获取到的股票历史行情数据如下:")
print(stock_hist_df)
return stock_hist_df
# 使用pyecharts绘制K线图
def plot_kline(stock_data):
if not stock_data.empty:
# 准备K线图的数据
kline_data = []
for index, row in stock_data.iterrows():
kline_data.append([
row["日期"], # 日期
row["开盘价"], # 开盘价
row["最高价"], # 最高价
row["最低价"], # 最低价
row["收盘价"] # 收盘价
])
# 定义K线图
kline = (
Kline()
.add_xaxis([row[0] for row in kline_data]) # X轴数据为日期
.add_yaxis(
"贵州茅台",
[row[1:] for row in kline_data], # Y轴数据为开盘价、最高价、最低价、收盘价
is_more_utils=True,
)
.set_global_opts(
title_opts=opts.TitleOpts(title="贵州茅台(股票代码:600519)K线图"),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)), # X轴标签旋转45度
)
.set_series_opts(
itemstyle_opts=opts.ItemStyleOpts(
normal=opts.NormalOpts(color="#ffde33", color0="#00a1ff"),
emphasis=opts.EmphasisOpts(color="#ffde33", color0="#00a1ff")
)
)
)
# 渲染图表到HTML文件
kline.render("guangxi_moutai_kline.html")
print("K线图已生成,文件名为:guangxi_moutai_kline.html")
else:
print("没有获取到数据,无法生成K线图。")
# 设置参数
symbol = "600519"
period = "daily"
start_date = "20240301"
end_date = "20240605"
adjust = "qfq"
# 执行函数
stock_hist_df = get_stock_data(symbol, period, start_date, end_date, adjust)
plot_kline(stock_hist_df)
打开maotai_kline.html,显示如下: