def get_plot(self, ylim=None, units="thz"):
        """
        Get a matplotlib object for the bandstructure plot.

        Args:
            ylim: Specify the y-axis (frequency) limits; by default None let
                the code choose.
            units: units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.
        """

        u = freq_units(units)

        plt = pretty_plot(12, 8)

        band_linewidth = 1

        data = self.bs_plot_data()
        for d in range(len(data['distances'])):
            for i in range(self._nb_bands):
                plt.plot(data['distances'][d],
                         [data['frequency'][d][i][j] * u.factor
                          for j in range(len(data['distances'][d]))], 'b-',
                         linewidth=band_linewidth)

        self._maketicks(plt)

        # plot y=0 line
        plt.axhline(0, linewidth=1, color='k')

        # Main X and Y Labels
        plt.xlabel(r'$\mathrm{Wave\ Vector}$', fontsize=30)
        ylabel = r'$\mathrm{{Frequencies\ ({})}}$'.format(u.label)
        plt.ylabel(ylabel, fontsize=30)

        # X range (K)
        # last distance point
        x_max = data['distances'][-1][-1]
        plt.xlim(0, x_max)

        if ylim is not None:
            plt.ylim(ylim)

        plt.tight_layout()

        return plt
def get_plot ( self , ylim = None , units = "thz" ) : u = freq_units ( units ) plt = pretty_plot ( 12 , 8 ) band_linewidth = 1 data = self . bs_plot_data ( ) for d in range ( len ( data [ 'distances' ] ) ) : for i in range ( self . _nb_bands ) : plt . plot ( data [ 'distances' ] [ d ] , [ data [ 'frequency' ] [ d ] [ i ] [ j ] * u . factor for j in range ( len ( data [ 'distances' ] [ d ] ) ) ] , 'b-' , linewidth = band_linewidth ) self . _maketicks ( plt ) plt . axhline ( 0 , linewidth = 1 , color = 'k' ) plt . xlabel ( r'$\mathrm{Wave\ Vector}$' , fontsize = 30 ) ylabel = r'$\mathrm{{Frequencies\ ({})}}$' . format ( u . label ) plt . ylabel ( ylabel , fontsize = 30 ) x_max = data [ 'distances' ] [ - 1 ] [ - 1 ] plt . xlim ( 0 , x_max ) if ylim is not None : plt . ylim ( ylim ) plt . tight_layout ( ) return plt
Get a matplotlib object for the bandstructure plot.

        Args:
            ylim: Specify the y-axis (frequency) limits; by default None let
                the code choose.
            units: units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.