免费获取更多最新股市数据关注头像同名恭祝好!

在一个figure上画三个图,我们首先要给figure添加gridspec,代码如下:

gs = fig.add_gridspec(3, 1,  # 三行一列的网格left=0.01, right=0.96, bottom=0.01, top=0.99,  # 设置页边距wspace=0.00, hspace=0.12,  # 设置行与行之间的距离,列与列之间的距离height_ratios=[0.4, 0.2, 0.2])  # 这边是3行,设置每行占的高度的比例

剩下的就是把之前的代码整合起来,代码如下:

# 汇总日K,换手率柱状图,大资金折线图import pandas
import numpy as np
import matplotlib.pyplot as plt
import mpl_finance as mpfdir_name = 'D:\\gupiao\\'def paint_dayk(code):# 1、获取数据stock_data = pandas.read_csv(dir_name + code + '.txt')  # 读取数据begin = len(stock_data) - 120  # 取最近120天的数据if begin < 0:  # 如果上市未满120天,则从上市当天开始显示begin = 0fig = plt.figure(  # 添加fig对象figsize=(54, 28),  # 设置fig大小,长和宽,单位为英寸dpi=120)  # 每英寸的像素点数gs = fig.add_gridspec(3, 1,  # 三行一列的网格left=0.01, right=0.96, bottom=0.01, top=0.99,  # 设置页边距wspace=0.00, hspace=0.12,  # 设置行与行之间的距离,列与列之间的距离height_ratios=[0.4, 0.2, 0.2])  # 这边是3行,设置每行占的高度的比例# 2、画日K图ax_rik = fig.add_subplot(gs[0, 0])  # 在fig中添加网格的第一块,并返回一套坐标轴mpf.candlestick2_ochl(  # 调用candlestick2_ochl画日K图ax_rik,  # 在这套坐标轴内画日K图stock_data.open[begin:], stock_data.close[begin:],  # 开盘价和收盘价stock_data.high[begin:], stock_data.low[begin:],  # 最高价和最低价width=0.8, colorup='red', colordown='green')  # 收盘价大于开盘价则红柱,收盘价小于开盘价则绿柱ax_rik.grid(axis='x', linestyle='-.')  # 添加x轴方向的网格ax_rik.grid(axis='y', linestyle='-.')  # 添加y轴方向的网格ax_rik.yaxis.tick_right()  # 将y轴的数值显示在右边ax_rik.set_xlim(0, len(stock_data.index)-begin, 1)  # 设置x轴的范围ax_rik.set_xticks(range(0, len(stock_data.index)-begin, 1))  # 设置x轴的刻度ax_rik.axes.set_xticklabels(stock_data.week[begin:])for label in ax_rik.xaxis.get_ticklabels():  # 设置x轴标签的字体大小label.set_fontsize(16)for label in ax_rik.yaxis.get_ticklabels():  # 设置y轴标签的字体大小label.set_fontsize(40)# 绘制移动平均线图stock_data['Ma5'] = stock_data.close.rolling(window=5).mean()  # 求5日均线stock_data['Ma10'] = stock_data.close.rolling(window=10).mean()  # 求10日均线stock_data['Ma20'] = stock_data.close.rolling(window=20).mean()  # 求20日均线ax_rik.plot(np.arange(0, len(stock_data.index)-begin),  # [x]的数据范围stock_data['Ma5'][begin:],  # [y]的数据范围'black',  # 均线颜色label='M5',  # 均线标签lw=2.5)  # 均线宽度ax_rik.plot(np.arange(0, len(stock_data.index)-begin), stock_data['Ma10'][begin:], 'orange', label='M10', lw=2.5)ax_rik.plot(np.arange(0, len(stock_data.index)-begin), stock_data['Ma20'][begin:], 'purple', label='M20', lw=2.5)# 3、绘制换手柱状图ax_hsl = fig.add_subplot(gs[1, 0])  # 在fig中添加网格的第一块,并返回一套坐标轴hsl_zzt = ax_hsl.bar(np.arange(0, len(stock_data.index) - begin),stock_data.change[begin:],color=['g' if stock_data.open[x] > stock_data.close[x] else 'r' for x in range(begin, len(stock_data.index))])ax_hsl.bar_label(hsl_zzt,  # 要打标签的柱状图labels=stock_data.dealLabel[begin:],  # 标签,为当日的成交额(亿)label_type='edge',  # 标签显示的位置,edge(顶部),center(柱状图中间)fontsize='28',  # 标签字体大小fmt="%.f")  # 标签数据格式ax_hsl.grid(axis='x', linestyle='-.')  # 添加x轴方向的网格ax_hsl.grid(axis='y', linestyle='-.')  # 添加y轴方向的网格ax_hsl.yaxis.tick_right()  # 将y轴的数值显示在右边ax_hsl.set_xlim(0, len(stock_data.index) - begin, 1)  # 设置x轴的范围ax_hsl.set_xticks(range(0, len(stock_data.index) - begin, 1))  # 设置x轴的刻度ax_hsl.axes.set_xticklabels(stock_data.week[begin:])for label in ax_hsl.xaxis.get_ticklabels():  # 设置x轴标签的字体大小label.set_fontsize(16)for label in ax_hsl.yaxis.get_ticklabels():  # 设置y轴标签的字体大小label.set_fontsize(40)# 4、绘制大资金折线图ax_dzj = fig.add_subplot(gs[2, 0])  # 在fig中添加网格的第一块,并返回一套坐标轴ax_dzj.plot(np.arange(0, len(stock_data.index) - begin),stock_data.mainBuy[begin:],  # 大资金流入的数据c='red',  # 折线颜色marker='o',  # 折线上点的形状markersize=2.6)  # 点的大小ax_dzj.plot(np.arange(0, len(stock_data.index) - begin),stock_data.mainSell[begin:],  # 大资金流出的数据c='green',  # 折线颜色marker='o',  # 折线上点的形状markersize=2.6)  # 点的大小dzj_zzt = ax_dzj.bar(np.arange(0, len(stock_data.index) - begin),stock_data.deal[begin:],color='white')ax_dzj.bar_label(dzj_zzt,labels=stock_data.cjePaiMing[begin:],label_type='edge',fontsize='28',fmt="%.f")ax_dzj.grid(axis='x', linestyle='-.')  # 添加x轴方向的网格ax_dzj.grid(axis='y', linestyle='-.')  # 添加y轴方向的网格ax_dzj.yaxis.tick_right()  # 将y轴的数值显示在右边ax_dzj.set_xlim(0, len(stock_data.index) - begin, 1)  # 设置x轴的范围ax_dzj.set_xticks(range(0, len(stock_data.index) - begin, 1))  # 设置x轴的刻度ax_dzj.axes.set_xticklabels(stock_data.week[begin:])for label in ax_dzj.xaxis.get_ticklabels():  # 设置x轴标签的字体大小label.set_fontsize(16)for label in ax_dzj.yaxis.get_ticklabels():  # 设置y轴标签的字体大小label.set_fontsize(40)# 5、输出日K图plt.savefig(dir_name + code + '.jpg')  # 保存图片def main():code = '000001'paint_dayk(code)if __name__ == '__main__':main()

生成的图形如下:

更多数据下载:股票数据,最近两百天,更新到了20220809-数据集文档类资源-CSDN下载

Python绘制股票日K图(十)汇总日K图、柱状图、折线图相关推荐

  1. Python绘制股票日K图(九)给折线图加标签

    股票当日成交额在股市的排名说明了市场对它的关注度,也是一个很好的指标. 免费获取更多最新股市数据关注头像同名恭祝好! 相应的代码同Python绘制股票日K图(七)给柱状图加上标签差不多,只不过需要注意 ...

  2. Python绘制股票K线图

    目录 1 股票K线图知识了解 2 用Python绘制股票K线图 2.1 安装绘制K线图的mpl_finance库 2.2 引入相关库 2.3 用Tushare库获取股票基本数据 2.4 日期格式调整及 ...

  3. 【python科研绘图】双y轴并列柱状图+折线图+数据表结合,并封装图形绘制函数

    双y轴并列柱状图+折线图+数据表结合 1. 论文原图 2 数据准备 3 代码实现步骤拆解 3.1 导入第三方库 3.2 数据赋值 3.3 数据绘图 4 函数封装 手动反爬虫: 原博地址 https:/ ...

  4. Origin: 双Y轴 | 柱状图 | 折线图 | 垂线散点图的结合绘制

    origin | 双Y轴 | 添加图层 | 柱状图 | 折线图 | 散点图 一.前言 二.数据准备 三.绘图 3.1 图层1-绘制柱状图 3.2 图层2-折线图的绘制 3.2.1 添加新图层-折线图 ...

  5. 【最简单的python画折线图】半封装式代码画折线图,防止写重复代码

    一.为什么要写这个代码 很多时候画散点的折线图时,总是忘记代码细节怎么写,于是就想不如花点时间写几个函数,把画图的功能封装一下,下次画图这部分代码就能与其他代码隔离开来.使用者无需过多关注内部细节,只 ...

  6. Java使用POI生成折线图导出到word文档(折线图)

    本篇文章主要介绍,如何使用Apache POI组件生成折线图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成折线图导出到word文档中,最终生成的折线图如下所示: 二. ...

  7. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;

    本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...

  8. php制作曲线柱形图的框架,用GD图库生成横竖柱状图折线图的类_php

    最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧 Class ImageReport{ var $X;//图片大小X轴 var $Y;//图片大小Y轴 var $R;//背影色 ...

  9. 柱状图折线图混合使用

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>柱状图 ...

  10. Echarts实现堆叠柱状图+折线图

    Echarts实现堆叠柱状图+折线图,以便后续使用时复制 //堆疊Bar圖+折線圖 option = {title: {text: '动态数据',subtext: '纯属虚构'},tooltip: { ...

最新文章

  1. 在symfony2项目中100%提升doctrine的性能
  2. tensorflow随笔-条件循环语句求解一元多次方程
  3. 根据pid判断某个进程是否存在
  4. 戴尔为例 浅谈电子商务时代客户关系管理
  5. 这个年纪,喜欢你的肉体还会送你包的,原来是......
  6. linux虚拟机ip修改无效
  7. 如何写dblink?
  8. idea使用activiti插件
  9. R语言中管道操作 %%, %T%, %$% 和 %%
  10. 牛顿插值法,泰勒公式
  11. 汉王手写板linux驱动下载,Hanwang汉王
  12. java.sql.SQLException: The server time zone value ' й ׼ʱ ' is unrecognized or represents more tha
  13. 星际争霸2的移动机制-初探
  14. nginx的安装和配置
  15. 【原创游戏】迷踪失路——恐怖风格的第一人称迷宫游戏
  16. 批量取消bilibili关注
  17. 异常恶毒的十二星座性格分析(转)
  18. (完结)Unity游戏开发——新发教你做游戏(七):Animator控制角色动画播放
  19. 对产品经理来说,PMP和NPDP两个证书,哪一个权威性比较大?
  20. IOS苹果ipa重签名工具(苹果签名工具,ios签名工具,支持Windows系统和Macos系统)

热门文章

  1. RPA UiPath认证考试
  2. 三、MySql03 SQL 高级(一)
  3. python 字符串提取操作_python 中对字符串的操作
  4. web页面中如何隐藏js代码的显示。或者说如何不让别人一下子就能看懂我的web代码。
  5. 中兴蓝剑计划与华为15级大佬教你如何做校招简历!
  6. pks300服务器自动同步,霍尼PKS组态培训资料-EPKS300.pdf
  7. 2022年软件设计师考试知识点:计算机病毒与木马
  8. S3C2440—7.存储控制器访问外设
  9. mysql frm 英文全称_考frm是全英文?
  10. uva 590 dp