Matplotlib 为什么它只表示第二个图形?
我正在学习OOP。作为练习,我尝试创建一个类,该类向我显示各种引号的各种指示符的图形。为此,我愿意:Matplotlib 为什么它只表示第二个图形?,matplotlib,oop,python-3.6,jupyter-lab,Matplotlib,Oop,Python 3.6,Jupyter Lab,我正在学习OOP。作为练习,我尝试创建一个类,该类向我显示各种引号的各种指示符的图形。为此,我愿意: import pandas_datareader.data as web import datetime as dt import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.style.use('ggplot') class ImportadorCotizaciones: def __ini
import pandas_datareader.data as web
import datetime as dt
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')
class ImportadorCotizaciones:
def __init__(self, tickers ):
self.start = "2017-1-4"
self.end = "2021-5-30"
self.retornos = pd.DataFrame({})
def importar_cotizaciones(self):
stocks = web.DataReader(tickers,
'yahoo', start, end)['Adj Close']
self.retornos = stocks.pct_change()
class CalculadorIndicadoresRiesgo:
def __init__(self, cotizaciones):
self.cotizaciones = cotizaciones
self.N = 255 # 255 días de bolsa en un año
self.rf = 0.01 # 1% tasa libre de riesgo
self.Sharpe_Anual = []
self.sortino = []
self.max_drawdowns = []
self_ratio_calmars = []
def normalizar_pct_cambio(self):
print (f"\nEl gráfico muestra el crecimiento de 1€ invertido desde el {self.cotizaciones.start} hasta el {self.cotizaciones.end}")
(self.cotizaciones.retornos + 1).cumprod().plot()
def calcular_sharpe_anualizado(self):
mean = self.cotizaciones.retornos.mean() * self.N - self.rf
sigma = self.cotizaciones.retornos.std() * np.sqrt(self.N)
Sharpe = mean / sigma
self.Sharpe_Anual = (252**0.5) * Sharpe
self.Sharpe_Anual.plot.bar()
plt.show()
tickers = ['AAPL', 'AMZN', 'MSFT', 'GOOGL','FB']
cotizaciones = ImportadorCotizaciones(tickers)
cotizaciones.importar_cotizaciones()
graficos_indicadores = CalculadorIndicadoresRiesgo(cotizaciones)
graficos_indicadores.normalizar_pct_cambio()
graficos_indicadores.calcular_sharpe_anualizado()
如果我只执行第一个方法(graphs\u indicators.normalize\u pct\u change()
),那么如果我一个接一个地执行这两个方法,它将正确显示图形
indicator_charts.normalize_pct_change ()
indicator_charts.calculate_anualized_sharpe ()
它只显示第二个的图形。原因是什么?看起来
normalizear\u pct\u cambio()
没有plt.show()
。顺便说一句,如果你能与命名保持一致(在任何地方使用英语或其他语言),这会有所帮助