zoukankan      html  css  js  c++  java
  • python最新版mplfinance中文乱码解决方法

    https://blog.csdn.net/Wilburzzz/article/details/109667926

    # -*- coding: utf-8 -*-
    # @Time    : 2021/11/7 20:40
    # @Author  : zhaozhuang
    
    
    # 导入 efinance 如果没有安装则需要通过执行命令: pip install efinance 来安装
    import efinance as ef
    import mplfinance as mpf
    import pandas as pd
    
    # import matplotlib.pyplot as plt
    
    pd.set_option('display.max_rows', 50000)
    pd.set_option('display.max_columns', 50000)
    pd.set_option('display.width', 2000)
    
    
    # plt.rcParams['font.sans-serif'] = ['SimHei']
    # plt.rcParams['axes.unicode_minus'] = False
    
    # 解决mplfinance绘制输出中文乱码
    # s = mpf.make_mpf_style(rc={'font.family': 'SimHei'})
    
    
    def get_kchar(df: pd.DataFrame, code: str, name: str):
        date_index = df['日期']
        date_index = pd.to_datetime(date_index)
        data = df[['开盘', '最高', '最低', '收盘', '成交量']]
        data = data.rename(columns={'开盘': 'Open', '收盘': 'Close', '最高': 'High', '最低': 'Low', '成交量': 'Volume'})
        data.index = date_index
    
        my_color = mpf.make_marketcolors(up='red', down='green')
        my_style = mpf.make_mpf_style(marketcolors=my_color, rc={'font.family': 'SimHei'})
        add_plot = [
            mpf.make_addplot(turnover_rate, scatter=True, marker='^', color='red'),
            mpf.make_addplot(turnover_rate, color='red'),
            mpf.make_addplot(ma_turnover_rate, color='blue'),
    
            ]
        mpf.plot(data, type='candle', style=my_style, figscale=2, addplot=add_plot, mav=(5, 20, 30), ylabel='price',
                 volume=True,
                 title=f'\n\n\n {code} {name}  K_line')
        # mpf.plot(data, type='candle', style=my_style, figscale=2, addplot=add_plot, mav=(5, 20, 30), volume=True,
        #          title=f'\n\n\n {code} {name}  K_line')
    
    
    paras = {
        'stock_code': '002626',
        'begin': '20210130',
        'end': '20251105',
        'freq': 101
        }
    
    stock_code = paras['stock_code']
    beg = paras['begin']
    end = paras['end']
    freq = paras['freq']
    
    # 获取最新一个交易日的分钟级别股票行情数据
    df = ef.stock.get_quote_history(stock_codes=stock_code, beg=beg, end=end, klt=freq)
    # 将数据存储到 csv 文件中
    # df.to_excel(f'{stock_code}_{freq}.xlsx', encoding='utf-8-sig', index=None)
    print(f'股票: {stock_code} 的行情数据已存储到文件: {stock_code}_{freq}.xlsx 中!')
    # 获取一支股票的量比
    name = df['股票名称'].values[0]
    vol_ma = df['成交量'].rolling(window=5).mean().values
    vol_raito = df['成交量'].values / df['成交量'].rolling(window=5).mean().values
    turnover_rate = df['换手率'].values
    ma_turnover_rate = df['换手率'].rolling(window=21).mean().values
    # print(vol_ma)
    # print(vol_raito)
    get_kchar(df, paras['stock_code'], name)
  • 相关阅读:
    Python字符串学习相关问题
    Python函数学习遇到的问题
    How to configure ODBC DSN to access local DB2 for Windows
    如何在Eclipse CDT中编译含有多个main函数的项目
    MakeFile 文件的作用
    云技术:负载均衡SLB
    云技术:弹性计算ECS
    《老罗的Android之旅》导读PPT
    服务器集群负载均衡技术
    杭电ACM 1004题
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/15585557.html
Copyright © 2011-2022 走看看