使用python的pandas为你的股票绘制趋势图


Posted in Python onJune 26, 2019

前言

手里有一点点公司的股票, 拿不准在什么时机抛售, 程序员也没时间天天盯着看,不如动手写个小程序, 把股票趋势每天早上发到邮箱里,用 python 的 pandas, matplotlib 写起来很容易, 几十行代码搞定。

准备环境

python3 -m venv venv
source ./venv/bin/activate
pip install pandas
pip install pandas_datareader
pip install matplotlib

代码如下

绘制 2019 年到今天2019-02-15 的我司 ( Cisco ) 的股票趋势 ( open:开盘价, close: 收盘价, high 最高价:, low: 最低价,单位为美元)

$ vi stock.py

import matplotlib.pyplot as plt
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import matplotlib
import time
import matplotlib.pyplot as plt
import argparse
def drawStockTrend(inc, startDate, endDate, pngFile):
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
df = web.DataReader(name=inc, data_source='iex', start=startDate, end=endDate)
print(df)
plt.style.use('seaborn-whitegrid')
plt.xticks(rotation=30)
plt.plot(df.index, df['open'], label='open', marker='o', linestyle=':', linewidth=1, markersize=3, color='gray')
plt.plot(df.index, df['high'], label='high', marker='o', linestyle=':', linewidth=1, markersize=3, color='green')
plt.plot(df.index, df['low'], label='low', marker='o', linestyle=':', linewidth=1, markersize=3, color='blue')
plt.plot(df.index, df['close'], label='close', marker='o', linestyle='-', linewidth=2, markersize=6, color='red')
for x, y in zip(df.index, df['close']):
plt.text(x, y + 0.3, '%.2f' % y, ha='center', va='bottom', color='red')
plt.legend()
plt.title("%s' stock trend" % company)
plt.show(block=True)
time.sleep(1)
if(not pngFile):
fig.savefig(pngFile)
plt.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-c', action='store', dest='company', help='specify company')
parser.add_argument('-s', action='store', dest='start', help='specify start date')
parser.add_argument('-e', action='store', dest='end', help='specify end date')
parser.add_argument('-f', action='store', dest='file', help='specify the filename')
args = parser.parse_args()
company = 'CSCO'
startDate = '2019-01-01'
endDate = '2019-02-19'
pngFile = None
if(args.company):
company = args.company
if (args.start):
startDate = args.start
if (args.end):
endDate = args.end
if (args.file):
pngFile = args.file
drawStockTrend(company, startDate, endDate, pngFile)
#example
# python stock.py -c GOOGL -s 2019-01-01 -e 2019-02-19 -f google_stock_trend.png
# python stock.py -c CSCO -s 2019-01-01 -e 2019-02-19 -f cisco_stock_trend.png
# python stock.py -c SINA -s 2019-01-01 -e 2019-02-19 -f sina_stock_trend.png
# python stock.py -c BIDU -s 2019-01-01 -e 2019-02-19 -f baidu_stock_trend.png
# python stock.py -c NTES -s 2019-01-01 -e 2019-02-19 -f netease_stock_trend.png

运行命令如下

python stock.py -c CSCO -s 2019-01-01 -e 2019-02-19 -f cisco_stock_trend.png

图表如下

cisco

使用python的pandas为你的股票绘制趋势图

cisco

看来最近股价涨势不错。

再看看其他公司

Google

使用python的pandas为你的股票绘制趋势图

google

Baidu

使用python的pandas为你的股票绘制趋势图

baidu

Netease

使用python的pandas为你的股票绘制趋势图

netease

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获得一个月有多少天的方法
Jun 04 Python
python基础知识小结之集合
Nov 25 Python
python僵尸进程产生的原因
Jul 21 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
pandas值替换方法
Jul 10 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python中类与对象之间的关系详解
Dec 16 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
python安装scipy的方法步骤
Jun 26 #Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 #Python
如何通过python画loss曲线的方法
Jun 26 #Python
python and or用法详解
Jun 26 #Python
python覆盖写入,追加写入的实例
Jun 26 #Python
通过cmd进入python的实例操作
Jun 26 #Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 #Python
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP中一个控制字符串输出的函数
2006/10/09 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
会计专业自我鉴定范文
2013/12/29 职场文书
男女朋友协议书
2014/04/23 职场文书
活动总结格式范文
2014/04/26 职场文书
我爱我校演讲稿
2014/05/21 职场文书
常务副总经理任命书
2014/06/05 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
红与黑读书笔记
2015/06/29 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
2019入党申请书格式
2019/06/25 职场文书
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技