为什么 Spyder 不能用代码生成图表?

问题描述 投票:0回答:0

我在 Spyder (Python 3.7) 中运行以下代码并且没有错误消息,但为什么我看不到生成的图表?任何人都可以帮忙吗?图形后端设置已经“内联”了。

import statsmodels.api as sm
import numpy as np
import plotly.graph_objs as go
import matplotlib.pyplot as plt
import plotly.offline as pyo
import warnings
warnings.filterwarnings('ignore')

n_assets = 5
n_simulation = 500
returns = np.random.randn(n_assets, n_simulation)
rand = np.random.rand(n_assets)
weights = rand/sum(rand)

def port_return(returns):
   rets = np.mean(returns, axis=1)
   cov = np.cov(rets.T, aweights=weights, ddof=1)
   portfolio_returns = np.dot(weights, rets.T)
   portfolio_std_dev = np.sqrt(np.dot(weights, np.dot(cov, weights)))
   return portfolio_returns, portfolio_std_dev

portfolio_returns, portfolio_std_dev = port_return(returns)


portfolio = np.array([port_return(np.random.randn(n_assets, i))for i in range(1, 101)])


best_fit = sm.OLS(portfolio[:, 1], sm.add_constant(portfolio[:, 0]))\.fit().fittedvalues


fig = go.Figure()
fig.add_trace(go.Scatter(name='Risk-Return Relationship', x=portfolio[:,0],y=portfolio[:,1],       mode='markers'))`
fig.add_trace(go.Scatter(name='Best Fit Line', x=portfolio[:,0],y=best_fit, mode='lines'))
fig.update_layout(xaxis_title = 'Return', yaxis_title = 'Standard Deviation', width=900, height=470)

plotly.offline.iplot(fig, filename="images/risk_return.png")

fig.show()

我期待在图中看到一些名为“风险回报关系”的点和一条名为“最佳拟合线”的直线,自变量是 portfolio_std_dev,因变量是 portfolio_returns

python matplotlib spyder
© www.soinside.com 2019 - 2024. All rights reserved.