这里是金融计算与编程的第二节课
今日所学的是matplotlib——这个python中最基础的画图库。
matplotlib初步
import matplotlib.pyplot as plt
import numpy as np
1.我们先生成一个一维的y(来画折线图)
先简单画一个图
np.random.seed(250)
y = np.random.standard_normal(20)
x = range(len(y))
plt.plot(x,y)
这个和直接plt.plot(y)的结果是一样的
2.下面初步尝试cumsum函数
#这里添加画布
plt.figure(figsize = [7,4])
#这里用来画直线
plt.plot(y.cumsum() , "C1" , lw =1.2)
#这里用来画点
plt.plot(y.cumsum() , "ro")
#这里用来添加网格线
plt.grid("True")
#这里用来添加x轴和y轴
plt.xlabel("index")
plt.ylabel("value")
#这里用来添加标题
plt.title("A simple plot")
对于cumsum函数,axis=1指的是对列进行操作(不过并不清楚其他的axis是否将会表示同一个意思?)
可以看到第一列是不变的
#对于cumsum函数,axis=0指的是对行进行操作
可以看到第一行是不变的。
3.接下来我们生成一个二维的y(来画折线图)
y = np.random.standard_normal((20,2))
y
plt.plot(y[:,0] , lw =1.2 , label = "1st")
plt.plot(y[:,1] , lw = 1.2 , label = '2nd')
plt.plot(y,"ro")
plt.grid("True")
plt.legend(loc = 0 ) # 这里设置为0,指的是最优的匹配
plt.xlabel("index")
plt.ylabel("value")
plt.title("这是我的第二张图")
#下面是用来存储的函数,可以用参数dpi,例如=200来指定存储分辨率
plt.savefig("this_is_my_second_picture.png",dpi = 200)
这里是对于loc参数的说明
4.接下来我们将y[:,0] = y[:,0] * 100(遇到尺度相差过大的图片该怎么办?)
plt.plot(y)
#遇到的这样的大尺度的东西,就不可以将其放置于一张图中。
我们考虑用“子图”的思想进行实现
plt.subplot(nrows, ncols, index, **kwargs)
plt.figure(figsize = (7,