Vincent
2022-02-06 13:27老師,想問下蒙特卡洛里面這個圖里面代碼的含義,可視化這塊沒教,麻煩解釋下這幾行內(nèi)容。另外,請告知我下這些策略pdf的密碼,我這邊打不開,謝謝!
所屬:AQF > AAQF 視頻位置 相關(guān)試題
來源: 視頻位置 相關(guān)試題
1個回答
高志萍助教
2022-02-06 14:32
該回答已被題主采納
同學(xué)你好,
fig=plt.figure(figsize=(9,9)):是設(shè)定圖片的大小是9英寸??9英寸
ax=fig.add_subplot(111):表示在設(shè)定一個圖片,這里因為是只要一個圖就夠了,所以是111
如果要生成2個圖
第一個圖就是ax_1=fig.add_subplot(211)或者ax_1=fig.add_subplot(121)
第二個圖就是ax_2=fig.add_subplot(212)或者ax_1=fig.add_subplot(122)
如果要在第一個圖里話,就用ax_1.plot(),第二個圖就是ax_2.plot()
lines=[]: 建立一個空列表,之后循環(huán)的時候可以往空列表里放入每次的模擬數(shù)據(jù)(這里沒有用到,刪掉這個也不影響)
下面是循環(huán)畫圖:
len(curves)是模擬的總次數(shù),這里是300次
那idx就是0到300,(0開始,299結(jié)束,一共300個標(biāo)簽)
curves本身是個列表
curves[idx],表示第幾個標(biāo)簽對應(yīng)的數(shù)列,也就是列表切片
因為一次模擬是101個數(shù)的數(shù)列
idx第一次循環(huán),那idx取0,curves[0] 就是第一次模擬產(chǎn)生的101個數(shù)字,
retLine這里就是開始畫線了
ax.plt是在第一個子圖(這里只有一個子圖)里畫
line,就是被畫的東西,也就是每次的模擬
color='cornflowerblue'表示線的顏色是淺藍(lán)色
alpha=0.8,表示透明度,值越小越透明
linewidth=0.6,表示線寬
這樣循環(huán)300次,就畫出圖
然后是對圖的一些調(diào)整
plt.xlabel('stock_price',fontsize='large'):設(shè)定x軸的標(biāo)簽是stock_price,字體大小是大
plt.ylabel('steps',fontsize='large'):設(shè)定y軸的標(biāo)簽是steps,字體大小是大
(這里是有點問題的,應(yīng)該y軸表示價格,x軸表示步長,x和y的標(biāo)簽應(yīng)該換一下的)
plt.title('Monte Carlo Simulation',fontsize='large'):設(shè)定表格的名字是蒙特卡羅模擬,字體是大
plt.show()的作用是將內(nèi)存中已經(jīng)繪制好的圖片一次性繪制在對應(yīng)的坐標(biāo)系統(tǒng)中。
-
追答
同學(xué)你好,
密碼是:aqf20170801 -
追問
老師,我理解為curve本身是一個列表,它里面每一個元素也是個列表(包含101個價格),對吧?還有retLine是自己設(shè)的(有沒有逗號都無所謂)。另外,這種圖有沒有其他簡便的方法,可以不設(shè)定子圖嗎?求解答,謝謝!
-
追答
同學(xué)你好,
是你的,curve就是一個大列表
retline沒有逗號也可以的,
不設(shè)子圖的方法:
plt.figure(figsize=(9,9))
for idx in range(len(curves)):
line=curves[idx]
retLine=plt.plot(line,color='cornflowerblue',alpha=0.8,linewidth=0.6)
plt.xlabel('stock_price',fontsize='large')
plt.ylabel('steps',fontsize='large')
plt.title('Monte Carlo Simulation',fontsize='large')
plt.show() -
追答
請看圖:
