Python Matplotlib 简单应用

安装

pip install matplotlib

 

绘制单条曲线

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 50)
plt.plot(x, np.sin(x)) # 如果没有第一个参数 x,图形的 x 坐标默认为数组的索引
plt.show() # 显示图形

输出如下

绘制两条曲线

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 50)
plt.plot(x, np.sin(x), x, np.sin(2*x))
plt.show()

输出如下

自定义曲线外观

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 50)
plt.plot(x, np.sin(x), 'r-.', x, np.cos(x), 'c--')
plt.show()

上述代码展示了两种不同的曲线样式:’r-.’ 和 ‘c–‘。字母 ‘r’ 和 ‘c’ 代表线条的颜色,后面的符号代表线和点标记的类型。

颜色: 蓝色 – ‘b’ ,绿色 – ‘g’ ,红色 – ‘r’ ,青色 – ‘c’, 品红 – ‘m’ ,黄色 – ‘y’,黑色 – ‘k’, 白色 – ‘w’

线: 直线 – ‘-‘ ,虚线 – ‘–‘ ,点线 – ‘:’ ,点划线 – ‘-.’

常用点标记:点 – ‘.’ ,像素 – ‘,’ ,圆 – ‘o’ ,方形 – ‘s’ ,三角形 – ‘^’

输出如下

增加标签和标题

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 50)
plt.plot(x, np.sin(x), 'r-x', label='Sin(x)')
plt.plot(x, np.cos(x), 'g-^', label='Cos(x)')
plt.legend() # 展示图例
plt.xlabel('Rads') # 给 x 轴添加标签
plt.ylabel('Amplitude') # 给 y 轴添加标签
plt.title('Sin and Cos Waves') # 添加图形标题
plt.show()

输出结果如下

绘制子图

x=np.linspace(0,2*np.pi,50)
plt.subplot(2,1,1) #(行,列,活跃位置)
plt.plot(x,np.sin(x),'r')
plt.subplot(2,1,2)
plt.plot(x,np.cos(x),'g')
plt.show()

 

散点图

x=np.linspace(0,2*np.pi,50)
y=np.sin(x)
plt.scatter(x,y)
plt.show()

买入卖出股票的优雅实现

使用Python非常优雅地实现买入和卖出股票的计算,如下。

stocks = set(context.stocks) 

holdings = set(get_holdings(context)) 

to_buy = stocks - holdings 

to_sell = holdings - stocks

利用集合的+ -法可以很方便计算当前持仓与目标持仓间需要买入和卖出的股票。

 

集合是无序无重复的元素集,不支持索引和切片,重复值自动剔除。集合支持 x in set, len(set),和 for x in set等操作。

创建集合

1)b=set([6,3,9,15,21]) #set()方法创建

2)a = {‘a’,’i’}  #{}方式创建,但不能为空,否则会默认创建字典

 

增加集合元素

1)add方法。b.add(45) #add方法支持增加单个元素

2)update方法。b.update(a) #update方法支持集合合并

 

删除集合元素

b.remove(9) #原集合删除了元素 9

 

集合的运算

a|b    #求a,b的并集

a&b    #求a,b的交集

a-b    #元素在a中,不在b中

a^b    #集合a除去a&b的交集元素

Python常用函数备忘录

lambda

用法示例:
key=lambda x: abs(x)

相当于传入参数 x,输出结果 abs(x)

max与min

用法示例:
price = {
‘A’:123,
‘B’:450.1,
‘C’:12,
‘E’:444,
}
max_price=max(price.items(),key=lambda x:x[1])

对price.items()的序列求最大值,判断的标准是序列单元的第二个值

sorted

用法示例:
price = {
‘A’:123,
‘B’:450.1,
‘C’:12,
‘E’:444,
}
sorted_price=sorted(price.items(),key=lambda x:x[1],reverse=True)
对price.items()的序列排序,排序的标准是序列单元的第二个值,默认从小到大排序,reverse后从大到小排列。

Python常用金融扩展备忘录

pandas

地址

https://github.com/pandas-dev/pandas

安装

pip install pandas

文档

10分钟学会Pandas

 

numpy

地址

https://github.com/numpy/numpy

安装

pip install numpy

文档

待完善

 

tushare

地址

https://github.com/waditu/tushare

安装

pip install tushare

文档

待完善

 

pandas-datareader

地址

https://github.com/pydata/pandas-datareader

安装

pip install pandas-datareader

文档

待完善

 

talib

地址

https://github.com/mrjbq7/ta-lib

安装

pip install TA-Lib

 

安装报错:failed building wheel for ta-lib

解决方式:

1)下载第三方wheel,http://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

2)命令行运行:pip install TA_Lib‑0.4.10‑cp27‑cp27m‑win32.whl

 

报错  error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

解决方式:下载安装 Microsoft Visual C++ 9.0

文档

待完善

Python pip安装扩展包

问题:安装Python后,打开Python解释器,运行 pip install tushare 报错如下

pip install tushare
^
SyntaxError: invalid syntax

 

解决:Windows系统内,pip应当在命令行界面运行。

cmd打开命令行界面,

C:\users\yourname>D:\   #切换到D盘

C:\users\yourname>cd D:\Program Files\Python\Scripts #切换到pip所在目录

C:\users\yourname>pip install tushare #安装tushare

 

添加pip路径到Windows环境变量

C:\users\yourname>set PATH = %PATH%;D:\ProgramData\Anaconda2  #新增环境变量
C:\users\yourname>pip install tushare #安装扩展包

 

成功安装tushare金融数据扩展包~

 

下载安装扩展包,管理员身份运行命令行,执行:python setup.py install

 

Python集成环境Anaconda,集成pip安装包,无运行时的字符冲突问题。共享百度网盘地址