Matplotlib 为什么它只表示第二个图形?

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

我正在学习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 __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()
。顺便说一句,如果你能与命名保持一致(在任何地方使用英语或其他语言),这会有所帮助