'Plot impulse responses
Parameters
orth : bool, default False
Compute orthogonalized impulse responses
impulse : string or int
variable providing the impulse
response : string or int
variable affected by the impulse
signif : float (0 < signif < 1)
Significance level for error bars, defaults to 95% CI
subplot_params : dict
To pass to subplot plotting funcions. Example: if fonts are too big,
pass {\'fontsize\' : 8} or some number to your taste.
plot_params : dict
plot_stderr: bool, default True
Plot standard impulse response error bands
stderr_type: string
\'asym\': default, computes asymptotic standard errors
\'mc\': monte carlo standard errors (use rpl)
repl: int, default 1000
Number of replications for Monte Carlo and Sims-Zha standard errors
seed: int
np.random.seed for Monte Carlo replications
component: array or vector of principal component indices'

def plot(self, orth=False, impulse=None, response=None, signif=0.05, plot_params=None, subplot_params=None, plot_stderr=True, stderr_type='asym', repl=1000, seed=None, component=None):

    periods = self.periods
    model = self.model
    svar = self.svar
    if (orth and svar):
        raise ValueError('For    SVAR    system,    set    orth=False')
    if orth:
        title = 'Impulse    responses    (orthogonalized)'
        irfs = self.orth_irfs
    elif svar:
        title = 'Impulse    responses    (structural)'
        irfs = self.svar_irfs
    else:
        title = 'Impulse    responses'
        irfs = self.irfs
    if (plot_stderr == False):
        stderr = None
    elif (stderr_type not in ['asym', 'mc', 'sz1', 'sz2', 'sz3']):
        raise ValueError("Error    type    must    be    either    'asym',    'mc','sz1','sz2',    or    'sz3'")
    else:
        if (stderr_type == 'asym'):
            stderr = self.cov(orth=orth)
        if (stderr_type == 'mc'):
            stderr = self.errband_mc(orth=orth, svar=svar, repl=repl, signif=signif, seed=seed)
        if (stderr_type == 'sz1'):
            stderr = self.err_band_sz1(orth=orth, svar=svar, repl=repl, signif=signif, seed=seed, component=component)
        if (stderr_type == 'sz2'):
            stderr = self.err_band_sz2(orth=orth, svar=svar, repl=repl, signif=signif, seed=seed, component=component)
        if (stderr_type == 'sz3'):
            stderr = self.err_band_sz3(orth=orth, svar=svar, repl=repl, signif=signif, seed=seed, component=component)
    plotting.irf_grid_plot(irfs, stderr, impulse, response, self.model.names, title, signif=signif, subplot_params=subplot_params, plot_params=plot_params, stderr_type=stderr_type)
