def draw(self, **kwargs):
        """
        Called from the fit method, this method creates the canvas and
        draws the distribution plot on it.

        Parameters
        ----------
        kwargs: generic keyword arguments.

        """
        # Prepare the data
        bins  = np.arange(self.N)
        words = [self.features[i] for i in self.sorted_[:self.N]]
        freqs = {}

        # Set up the bar plots
        if self.conditional_freqdist_:
            for label, values in sorted(self.conditional_freqdist_.items(), key=itemgetter(0)):
                freqs[label] = [
                    values[i] for i in self.sorted_[:self.N]
                ]
        else:
            freqs['corpus'] = [
                self.freqdist_[i] for i in self.sorted_[:self.N]
            ]

        # Draw a horizontal barplot
        if self.orient == 'h':
            # Add the barchart, stacking if necessary
            for label, freq in freqs.items():
                self.ax.barh(bins, freq, label=label, align='center')

            # Set the y ticks to the words
            self.ax.set_yticks(bins)
            self.ax.set_yticklabels(words)

            # Order the features from top to bottom on the y axis
            self.ax.invert_yaxis()

            # Turn off y grid lines and turn on x grid lines
            self.ax.yaxis.grid(False)
            self.ax.xaxis.grid(True)

        # Draw a vertical barplot
        elif self.orient == 'v':
            # Add the barchart, stacking if necessary
            for label, freq in freqs.items():
                self.ax.bar(bins, freq, label=label, align='edge')

            # Set the y ticks to the words
            self.ax.set_xticks(bins)
            self.ax.set_xticklabels(words, rotation=90)

            # Turn off x grid lines and turn on y grid lines
            self.ax.yaxis.grid(True)
            self.ax.xaxis.grid(False)

        # Unknown state
        else:
            raise YellowbrickValueError(
                "Orientation must be 'h' or 'v'"
            )
def draw ( self , ** kwargs ) : bins = np . arange ( self . N ) words = [ self . features [ i ] for i in self . sorted_ [ : self . N ] ] freqs = { } if self . conditional_freqdist_ : for label , values in sorted ( self . conditional_freqdist_ . items ( ) , key = itemgetter ( 0 ) ) : freqs [ label ] = [ values [ i ] for i in self . sorted_ [ : self . N ] ] else : freqs [ 'corpus' ] = [ self . freqdist_ [ i ] for i in self . sorted_ [ : self . N ] ] if self . orient == 'h' : for label , freq in freqs . items ( ) : self . ax . barh ( bins , freq , label = label , align = 'center' ) self . ax . set_yticks ( bins ) self . ax . set_yticklabels ( words ) self . ax . invert_yaxis ( ) self . ax . yaxis . grid ( False ) self . ax . xaxis . grid ( True ) elif self . orient == 'v' : for label , freq in freqs . items ( ) : self . ax . bar ( bins , freq , label = label , align = 'edge' ) self . ax . set_xticks ( bins ) self . ax . set_xticklabels ( words , rotation = 90 ) self . ax . yaxis . grid ( True ) self . ax . xaxis . grid ( False ) else : raise YellowbrickValueError ( "Orientation must be 'h' or 'v'" )
Called from the fit method, this method creates the canvas and
        draws the distribution plot on it.

        Parameters
        ----------
        kwargs: generic keyword arguments.