AI绘制K线图
编辑
0
2025-06-22

提示词
一个DataFrame中包含股票的开盘价、收盘价、最高价、最低价,现在要将其绘制为K线图,请给出示例代码。
答案
import pandas as pd
import mplfinance as mpf
df = pd.read_excel('../数据/历史行情数据.xlsx')
#这次我们保留日期、开盘、收盘、最高、最低、成交量
df = df[['日期', '开盘', '收盘', '最高', '最低', '成交量']]
# 2. 列名规范化(关键步骤!)
print("原始列名:", df.columns.tolist()) # 调试查看实际列名
# 去除列名首尾空格
df.columns = df.columns.str.strip()
# 统一列名映射(根据实际数据调整)
column_mapping = {
'日期': 'Date',
'开盘': 'Open',
'最高': 'High',
'最低': 'Low',
'收盘': 'Close',
'成交量': 'Volume', # 中文常见列名
'volume': 'Volume', # 小写列名
'VOL': 'Volume' # 大写列名
}
df.rename(columns=column_mapping, inplace=True)
# 3. 设置日期索引
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
# 4. 检查必要列是否存在
required_cols = ['Open', 'High', 'Low', 'Close']
if 'Volume' not in df.columns:
print("警告: Volume列不存在, 自动禁用成交量显示")
volume_param = False
else:
volume_param = True
# 5. 安全绘图
s = mpf.make_mpf_style(base_mpf_style='binance', rc={'font.family': 'SimHei', 'axes.unicode_minus': 'False'})
mpf.plot(
df,
type='candle',
volume=volume_param, # 动态设置成交量
style=s,
title='K线图',
ylabel='价格',
figratio=(16, 9)
)
其中
“s = mpf.make_mpf_style(base_mpf_style='binance', rc={'font.family': 'SimHei', 'axes.unicode_minus': 'False'})”是我添加的
如果style=binnace,则中文会显示成方框,提示报错字体不存在。
mplfinance增加中文支持,即可以自定义一个style:s,然后替换掉就行。
图像:
- 0
- 0
-
赞助
支付宝
微信
-
分享