最新版mplfinance画股市蜡烛图

记录下用python画蜡烛图

import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import mplfinance as mpf
import numpy as np
from datetime import datetime

ts.set_token('your token')
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')
df['date'] = df['trade_date'].apply(lambda x: datetime.strptime(x, '%Y%m%d'))
data = df.loc[:,['date', 'open','close','high','low','vol']]
data = data.rename(columns={"vol": "volume"})
data.set_index('date', inplace=True)
data.index.name = "Date"
data.index = pd.DatetimeIndex(data.index)
data=data.reindex(index=data.index[::-1])

# data.head
mc = mpf.make_marketcolors(up='r',down='g')
s  = mpf.make_mpf_style(marketcolors=mc,mavcolors=['#4f8a8b','#fbd46d','#87556f'])

mpf.plot(data,type='candle',volume=True, show_nontrading=True, figratio=(20,10), mav=(5,10,15),style=s)

在使用 `mplfinance` 绘制 K 线时,默认字体可能无法正常显示中文字符,这是因为 Matplotlib 的默认字体通常不支持中文。解决这一问题的方法包括设置合适的中文字体。 以下是具体步骤: ### 解决方案 1. **导入必要库** 首先需要加载 `matplotlib` 和 `mplfinance` 库,并配置 Matplotlib 字体管理器。 2. **设置中文字体** 使用 `matplotlib.font_manager.FontProperties` 来指定系统中存在的中文字体文件路径(如 SimHei、SimSun 或其他你喜欢的中文字体)。可以将该字体应用到整个绘环境或特定文本元素上。 3. **示例代码** ```python import matplotlib.pyplot as plt from matplotlib import font_manager import mplfinance as mpf # 设置中文字体 font_path = 'C:/Windows/Fonts/simhei.ttf' # 示例字体路径,请根据实际情况修改 font_prop = font_manager.FontProperties(fname=font_path) # 数据准备 (这里假设 data 已经准备好) data = ... # 创建K线并添加标题等信息 mpf.plot(data, type='candle', style='charles', title="股票名称 - 中文测试", # 添加标题 mav=(5, 10), volume=True, figsize=(10,6)) # 修改形内的文字样式为自定义字体 plt.title("带中文的支持示例", fontproperties=font_prop) # 替换标题字体 plt.xlabel('日期', fontproperties=font_prop) # X轴标签 plt.ylabel('价格', fontproperties=font_prop) # Y轴标签 plt.show() ``` 4. **注意点** 如果直接运行报错找不到字体文件,则需检查本地安装了哪些可用字体,并调整上述 `font_path` 路径至正确的字体位置;此外还可以通过在线下载适合绘制表使用的开源字体来解决问题。 --- ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值