code: def hicup_filtering_chart(self):
          
  
          # Specify the order of the different possible categories
          keys = OrderedDict()
          keys['Valid_Pairs'] =            { 'color': '#2f7ed8', 'name': 'Valid Pairs' }
          keys['Same_Fragment_Internal'] = { 'color': '#0d233a', 'name': 'Same Fragment - Internal' }
          keys['Same_Circularised'] =      { 'color': '#910000', 'name': 'Same Fragment - Circularised' }
          keys['Same_Dangling_Ends'] =     { 'color': '#8bbc21', 'name': 'Same Fragment - Dangling Ends' }
          keys['Re_Ligation'] =            { 'color': '#1aadce', 'name': 'Re-ligation' }
          keys['Contiguous_Sequence'] =    { 'color': '#f28f43', 'name': 'Contiguous Sequence' }
          keys['Wrong_Size'] =             { 'color': '#492970', 'name': 'Wrong Size' }
  
          # Config for the plot
          config = {
              'id': 'hicup_filtering_plot',
              'title': 'HiCUP: Filtering Statistics',
              'ylab': '# Read Pairs',
              'cpswitch_counts_label': 'Number of Read Pairs',
              'cpswitch_c_active': False
          }
  
          return bargraph.plot(self.hicup_data, keys, config)
docs: Generate the HiCUP filtering plot