最近这两天股民基友们可能很多亏得底裤都没了,该说点什么呢,心态放平吧:

想长期混迹股市,还是要选基本面好的行业和个股,也要关注一些近期行业动态。当然这里面有很多维度和技巧,掌握得越多,驾驭股市的功力就越强。

今天我就来分享一个用pandas, numpy和matplotlib来做简单的行业“成交额”分析的python程序,简单改改就可以变成“成交量”或者“市值”等其他维度的分析。

首先假设我这里用到的输入数据格式为下图, 当然啦,就本程序而言,不是每一列都用得到,但大家如果需要可以自行改进程序利用其它维度,

(可以从这里获取每日excel数据:http://www.gupiaoexcel.com/)

目标是要得到2021-01-28日的各行业成交额情况,期望输出如下图:

下面给出程序全文,在python 3.6下测试通过,如果是python 2,可能略需改动,如需在本地运行,需要自行调整好输入输出文件路径

import pandas as pd
from collections import defaultdict
from matplotlib import pyplot as plt
import numpy as np# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题def def_value():return 0amountmap = defaultdict(def_value)date_str="2021-01-28"
input_file = "/tmp/{0}股票数据.xlsx".format(date_str)
output="/tmp/行业日成交额{0}.png".format(date_str)def draw_a_pie_chart(input_dict):industries = []data = []for k, v in amountmap.items():industries.append(k)data.append(v)data_np = np.array(data)industries_np=np.char.array(industries)_ = plt.figure(figsize=(10, 7))plt.title(date_str+'日行业成交额',loc='center')plt.pie(data_np)# show plotporcent = 100.*data_np/data_np.sum()# print(porcent)patches, _ = plt.pie(data_np, startangle=20, radius=1.2)labels = ['{0} = {1:1.2f} %, 成交额(万元):{2}'.format(i, j,k) for i, j, k in zip(industries_np, porcent,data_np)]sort_legend = Trueif sort_legend:patches, labels, _ = zip(*sorted(zip(patches, labels, data_np),key=lambda x: x[2],reverse=True))plt.legend(patches, labels, loc='best', bbox_to_anchor=(-0.4, 2.),fontsize=8)plt.savefig(output, bbox_inches='tight')print("文件存储到: {0}".format(output))# plt.show()if __name__ == "__main__":excel_data_df = pd.read_excel(input_file, sheet_name='Sheet1')df = pd.DataFrame(excel_data_df, columns=['行业', '成交额'])for index, row in df.iterrows():industry = row['行业']if(not isinstance(industry, str) or len(industry) < 1):continueamount = row['成交额']amountmap[industry] = amountmap[industry]+amountdraw_a_pie_chart(amountmap)

程序本身比较简单,就是用pandas读入excel数据的两列,行业和成交额,然后按行业累加得到一个字典数据结构,大概就是:

{'白酒',***成交额},

{'半导体',***成交额},

A股本身就4000多支,数据量不大,所以不用担心dict爆掉的情况。

然后用matplotlib把这个字典结构绘制成饼图,当然这个饼图会比较难看,因为被切得太细了,如果有需要,完全可以只显示top N的行业。

从上面的比例看,白酒的成交额还是比我们互联网行业高啊。。

同样的方法统计了下元器件成交额的top 10:

,你妹。。。感觉可以抄底京东方A或者等几天再抄底

简单统计了下近一周稳定在top 10的几个行业:

'证券', '小金属', '半导体', '软件服务', '白酒', '医疗保健', '化工原料'

【程序员股民系列】如何用python, pandas, numpy, matplotlib绘制每日行业成交额图相关推荐

  1. 【程序员股民系列】如何用python, pandas, numpy, matplotlib绘制每日个股成交额图

    上次分享了一段代码用于绘制每日行业交易额的图: [程序员股民系列]如何用python, pandas, numpy, matplotlib绘制每日行业成交额图 分析粒度略粗,只到行业这一层,把代码稍微 ...

  2. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  3. 利用 python numpy +matplotlib 绘制股票k线图

    一.python numpy + matplotlib 画股票k线图 # -- coding: utf-8 -- import requests import numpy as np from mat ...

  4. python 绘制k线图_利用python numpy+matplotlib绘制股票k线图的方法

    一.python numpy + matplotlib 画股票k线图 # -- coding: utf-8 -- import requests import numpy as np from mat ...

  5. 阿里资深程序员告诉你如何用Python提升未来竞争力

    今年很多人在问一个问题:到底什么才是抗风险能力? 稳定的工作?存款?理财? 有人预测:"到2030年,今天一半的工作岗位都将消失." 关于哪些工作最先消失,李开复提出过" ...

  6. python pyplot k线图_量化之路-python绘图-使用matplotlib绘制股票K线图(附代码)

    最近不知道在瞎忙什么,学习速度有点慢,更新也比较少,需要反思一下. 在学习完python爬虫和获取股票数据技能后,接下来需要将数据输出称为图形,以便查看趋势,以及分析趋势. 重新梳理下需要学会的技能步 ...

  7. python画轨迹曲线-matplotlib绘制随机行走轨迹图

    # _*_ coding: utf-8 _*_ __author__ = 'pythonwu' __date__ = "2018/6/15 16:09" from random i ...

  8. Python可视化之Matplotlib绘制高级图形对数图、频谱图、矢量场流线图、互关图

    1.对数图 便于观察图形之间变化的情况 from matplotlib import pyplot as plt import numpy as np x = np.linspace(1,100) y ...

  9. 精通python能干嘛-一个程序员怎样才算精通Python?

    原标题:一个程序员怎样才算精通Python? 作者:赖明星 我会先给出我对精通Python的理解,然后给出一些Python中有难度的知识点.如果大家在看完我这篇回答之前,已经充分理解了我列出的各个知识 ...

最新文章

  1. C++中extern C的使用
  2. eclipse安装lombok插件 ,但是:lombok注解不起作用(亲测有效!)
  3. GitHub之深入解析脚本·自定义与修改GitHub来更好地为特定的工作流程工作
  4. 角落的开发工具集之Vs(Visual Studio)2017插件推荐
  5. LeetCode 214. 最短回文串(字符串哈希)
  6. 面向java开发者的函数式编程_函数式编程让你忘记设计模式
  7. scala map,foreach,flatMap等方法对比
  8. angular跳转指定页面_angularjs,前端_怎么设置登录成功后跳转到相应的页面,angularjs,前端 - phpStudy...
  9. python做圆柱绕流_Fluent学习笔记(25)-----圆柱绕流(卡门涡街)
  10. python条件判断天气_Python小课—条件判断—学习笔记(4)
  11. unity动态禁用/启用组件enabled
  12. qq文件服务器怎么用,怎样使用qq文件助手功能图文教程
  13. R - 小鑫の日常系列故事(七)——小纸条
  14. 回复 程序员如何做SOHO接私单
  15. python处理grd格式文件_GBDT原理及利用GBDT构造新的特征-Python实现
  16. win7如何更改计算机管理员用户名和密码,win7系统下修改administrator管理员账户密码的设置方法?...
  17. 【Unity】动作游戏开发实战详细分析-16-敌人AI设计
  18. 小师妹问 easyUI mergeCells 行合并后表头和内容对不齐
  19. (转)解密蚂蚁金服战略投资:赛道、条款与边界
  20. (私人收藏)红色项目工作计划总结汇报PPT模板

热门文章

  1. 机会是留给有准备的人的
  2. 丁林松老师的QT视频及教程源码
  3. WebServer·(二)在IDEA中,安装配置Maven并且开发MavenHelloWorld
  4. 处理eclipse项目左下角有个红叉的问题
  5. java 字符串掐头去尾_Java 8 Stream 简单介绍
  6. python打印输出世界你好!_Python语句 print(\\\世界,你好”)的输出是?
  7. 淘集集商家入驻?淘集集商家入驻的步骤?
  8. 雪城大学Syracuse University介绍
  9. JavaScript 数据结构与算法(队列)
  10. 最通俗易懂的nginx